硬软链接的区别
简单总结下UNIX系统中的硬/软链接。
前置知识
所有类型的UNIX文件都是由操作系统通过索引节点(Inode)来管理的
索引节点是一个控制结构,包含关于操作系统所需的关于某个文件的关键信息
多个文件名能与一个索引节点相关联
例如,FreeBSD索引节点和文件结构如下:
硬链接
- 链接文件和被链接文件必须位于同一个文件系统
- 不能建立指向目录的硬链接
- 多个文件名链接到同一个索引节点,因此修改某一文件内容,则其它链接的文件也改变
- 增加一个硬链接只是增加对应索引节点的引用计数
- 删除文件只是对应索引节点引用计数-1,若索引节点的引用计数减为0,则文件被删除
例如:ln F2 H2
如图,原文件和硬链接的inode相同:
软链接/符号链接
- 是一种特殊类型的文件,其链接内容是另一个目录或文件的路径
- 对硬链接相比?(跨盘,可链目录)
- 建立符号链接文件,并不影响原文件,它们是相互独立的文件
- 可以理解为软链接所指向的文件存放了原文件的路径
- 删除原文件,则符号链接能被控制但无法访问
- 缺点
- 空间和时间开销更大
如图,原文件和软链接inode不同: