- 硬链接(hard link):
A是B的硬链接(A和B都是文件名),则A的目录项中的inode节点号与B的目录项中的inode节点号相同,即一个inode节点对应两个不同的文件名,两个文件名指向同一个文件,指向相同数据块。(实际上就是把 B复制了)如果B被删除了,A仍然存在,还是和B一模一样,即删除,无影响。
- 软链接(soft link):
A是B的软链接(A和B都是文件名),A的目录项中的inode节点号与B的目录项中的inode节点号不相同,A和B指向的是两个不同的inode,继而指向两块不同的数据块。但是A的数据块中存放的只是B的路径名(可以根据这个找到B的目录项)。A和B之间是“主从”关系,如果B被删除了,A仍然存在(因为两个是不同的文件),但指向的是一个无效的链接,会报错。
- 主要区别、限制:
硬链接:
- 不能对目录创建硬链接,
- 不能对不同的文件系统创建硬链接,即两个文件名要在相同的文件系统下。
- 不能对不存在的文件创建硬链接,由原理即可知原因。
软链接:
- 可以对目录创建软链接,遍历操作会忽略目录的软链接。
- 可以跨文件系统
- 可以对不存在的文件创建软链接,因为放的只是一个字符串,至于这个字符串是不是对于一个实际的文件,就是另外一回事了
- ln 语法格式
硬链接:ln 源文件 链接名
软链接:ln -s 源文件 链接名
注意: 链接的源文件路径要写绝对路径)