Linux---软链接与硬链接
创建时间:2022-04-06-22:58
说明:简单使用ln命令来创建软链接和硬链接
修改时间:
修改内容:
ln链接命令
使用 ln 命令,对文件或目录进行软链接(可以指向任何位置的目标),对文件进行硬链接(硬链接不支持跨文件系统),具体细节如下:
注:
- ln 命令默认创建为硬链接,使用 -s 选项时创建符号链接(软链接)
- 使用硬链接,删除目标文件并不会使目标文件真正消失,只有当删除所有指向目标文件的硬链接,目标文件才会真正消失
- 软链接可以指向任何位置的目标(文件或目录),但最好使用绝对路径,删除目标后,所有软链接均不可再用
硬链接和软链接
硬链接
/*命令语法*/
ln 目标 链接名
实例如下:
综上:使用硬链接会使所有的链接名和目标使用同一份 inode(索引号),即便移除目标文件,使用链接名仍可以访问到同一个 inode。因此,移除目标文件并不会使 inode 消失,只有把目标文件和所有链接名均移除,inode 才会消失( inode 是标识文件的 id,当 inode 不存在,文件也就不存在了)。
软链接
/*命令语法*/
ln -s 绝对路径下的目标 链接名
实例1—使用绝对路径创建软链接:
Q1:为何软链接名的 inode 和目标文件的 inode 不一致,删除目标文件后,软链接名就不能执行了呢?
A1:注意看上图,虽然软链接名的 inode 和目标文件的 inode 不一致,但是软链接名是指向目标文件的。可以理解为:hello1 的 inode 2757405 指向 hello 的 inode 2757395,当删除 hello 后,hello对应的 inode 也就不存在了,因此 hello1 就不能执行了,inode 是文件的 id,文件不存在了,id也就不存在了
实例2—相对路径和绝对路径的区别
- 相对路径
- 绝对路径
综上:使用绝对路径创建软链接,不会丢失链接属性,最好使用绝对路径创建软链接
小结
- 硬链接不能用于目录,只能用于文件;软链接可用于文件和目录
- 硬链接与目标文件共用同一个 inode,移除目标文件并不会使 inode消失,只有当所有硬链接和目标文件均移除后,共用的 inode 才会消失
- 软链接最好使用绝对路径来创建,并且在移除目标文件后,软链接将不能使用,这是因为软链接的 inode 是指向目标文件的 inode 的,当目标文件移除后,inode 就会不存在,从而导致软链接不能使用
- 软链接使用绝对路径创建能够保持链接属性,而相对路径则不能
以上,就是软链接和硬链接的简单使用,在后续若有不同的理解和认识,会对内容和表述进行补充或更正。