Mac上使用ln指令创建软链接、硬链接
在Mac、Linux和Unix系统中,软连接(Symbolic Link)和硬连接(Hard Link)是两种不同的文件链接方式。它们的主要区别如下:
区别:
- 硬连接:
- 不能跨文件系统。
- 不能链接目录(为了防止循环)。
- 删除原文件时,硬连接仍然有效,文件内容不会丢失,直到所有硬连接都被删除。
- 占磁盘空间;
- 软连接:
- 可以跨文件系统。
- 可以链接目录。
- 删除原文件时,软连接会失效,变成悬挂链接(dangling link)。
- 一种快捷方式,不占磁盘内存空间;
相同点:
- 指向的都是同一块内存地址;
使用Mac创建命令
-
硬连接:使用
ln
命令创建: -
ln source_file hard_link
软连接:使用
ln -s
命令创建: -
ln -s source_file soft_link
windows可以使用mklink,这里不再赘述。
举个实际的例子:
// 现在有一个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