Mac上使用ln指令创建软链接、硬链接

在Mac、Linux和Unix系统中,软连接(Symbolic Link)和硬连接(Hard Link)是两种不同的文件链接方式。它们的主要区别如下:

区别:

  • 硬连接 :
    • 不能跨文件系统。
    • 不能链接目录(为了防止循环)。
    • 删除原文件时,硬连接仍然有效,文件内容不会丢失,直到所有硬连接都被删除。
    • 占磁盘空间;
  • 软连接 :
    • 可以跨文件系统。
    • 可以链接目录。
    • 删除原文件时,软连接会失效,变成悬挂链接(dangling link)。
    • 一种快捷方式,不占磁盘内存空间;

相同点:

  • 指向的都是同一块内存地址;

使用Mac创建命令

  • 硬连接 :使用 ln 命令创建:

bash 复制代码
ln source_file hard_link

软连接 :使用 ln -s 命令创建:
*

bash 复制代码
ln -s source_file soft_link

windows可以使用mklink,这里不再赘述。

举个实际的例子:

bash 复制代码
// 现在有一个index.js文件, 里面的信息是console.log(111)

// 创建硬链接
ln index.js hard_index.js

// 创建软链接
ln index.js soft_index.js

当3个文件中的任何一个代码发生改变,其他2个文件都会同步,自己可以尝试下;

如果index.js文件删除,硬链接没有影响,软连接会马上失效;

软链接和硬链接的主要作用是:有效地节省磁盘空间

实际运用例子:pnpm -> pnpm官网

推荐学习视频:前置知识-pnpm 底层原理 + monorepo架构_哔哩哔哩_bilibili

相关推荐
郑州光合科技余经理2 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
2601_962071572 小时前
类变量和全局变量的生命周期有什么区别?
java·开发语言·jvm
Wang's Blog2 小时前
Java 项目实战: 外卖平台优化-前后端分离开发模式与工程拆分
java·开发语言
小呆呆6662 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
凤城老人3 小时前
从 PyQt6 到 Electron:给 Edge TTS 做一个“多角色配音机“的踩坑手记
javascript·typescript·electron
Dovis(誓平步青云)3 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
sunshine22 girl3 小时前
Java学习六 Java常见API-2--String-3-字符串的截取替换和其他方法
java·开发语言·学习
LOVE️YOU3 小时前
Python 函数名、函数对象与“把函数作为参数传递”
开发语言·python
码艺-Alimjan3 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
sunshine22 girl4 小时前
Java学习六 Java常见API-1-Radom随机数
java·开发语言·学习