软链接与硬链接
# 0.前言
本篇博客为:5分钟让你明白“软链接”和“硬链接”的区别 (opens new window) 的读书笔记。
这一部分主要为下一篇《pnpm有什么优势》作概念铺垫。
# 1.如何创建软、硬链接
通过 ln
可以创建硬链接:
$ ln myfile(源文件) hardlink(硬链接)
1
通过 ln -s
可以创建软链接
$ ln -s myfile(源文件) softlink(软链接)
1
# 2.区别
linux
系统中用来标识物理硬盘区块的是inode
值,可以通过ls -li
查看:
$ ln -s myfile softlink
$ ls -li
25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 hardlink(硬链接)
25869085 -rw-r--r-- 2 unixzii staff 36 7 8 17:45 myfile(源文件)
25869216 lrwxr-xr-x 1 unixzii staff 6 7 8 17:47 softlink -> myfile(软链接)
1
2
3
4
5
6
2
3
4
5
6
在 ls
结果的最左边一列,是文件的 inode
值。
可以发现,软链接是是一个独立的区别,保存的是一个指针,指针指向拷贝对象的路径。
执行删除源(如,myfile
)操作的时候,两者表现不同:
- 硬链接仍可以访问
- 删除软链接,就相当于删除快捷方式,所以软链接无法访问。
# 3.结论
在
linux
操作系统中的软链接
,等价于windows
中的快捷方式。在
linux
中多出一个inode
的概念,即一个文件存在与否,是否有文件指向这个inode
区块。事实上,文件系统会维护一个引用计数,只要有文件指向这个区块,它就不会从硬盘上消失。这一点,有点像
git
分布式管理,只要有一个人还保留着本地的git
参库,即使删除了origin
,该文件就不算被删除。
编辑 (opens new window)
上次更新: 2022/04/06, 15:04:00