软链接与硬链接
# 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