硬链接:
通过文件系统,我们知道,真正找到磁盘上文件的并不是文件名,而是inode。但是我们的Linux可以使多个文件名对应于同一个inode
创建一个硬链接:ln 源文件名 链接名
- 我们发现abc和bcd指向了同一个inode,inode中记录了文件的所有信息,改动其中一个使,另一个也会被改变
- abc和bcd的链接状态完全相同,他们被称为硬链接,内核记录了这个链接数,inode 1049405的硬链接数为2
- 我们在删除文件时,干了俩件事
- 在目录中,将对应的记录删除
- 将硬链接数-1,如果为0,则释放对应的磁盘
硬链接的特点:
- 不能对目录创建硬链接,原因有几种,但最重要的是:文件系统不能存在链接环,存在环的后果会导致例如文件遍历等操作的混乱
- 不能对不同的文件系统创建硬链接,即俩个文件名要在系统的文件系统下
- 不能对不存在的文件创建硬链接
软连接:
硬链接是通过inode引用另一个文件,软连接是通过我名字引用另一个文件
创建软连接:ln -s 源文件名 链接名
- efg是abc的软连接,abc和efg的inode不同
- 虽然他们俩个指向不同的inode,继而指向不同的数据块,但是efg的数据块存放着abc的路径名
- abc和efg是主从关系,如果abc被删除了,efg仍然在,但是指向了一个无效的链接
软连接的特点:
- 可以对目录创建软连接,便利操作会忽略目录的软链接
- 可以跨文件系统
- 可以对不存在的文件创建软连接,因为放的只是一个字符串,至于这个字符串是不是对应一个实际文件,并不关心
软硬链接的作用:
硬链接的作用:
- 硬链接允许一个文件拥有多个有效链接名,这样用户就可以建立硬链接到重要文件,以防止“误删”的情况,只删除一个链接不影响节点本身和其他的链接,只有当最后一个链接被删除后,文件的数据块以及目录的链接才会被释放,也就是说文件真正的删除的条件是与只相关的所有硬链接文件均被删除
软链接的作用:
- 对于符号链接以及它所指向何种对象并无任何文件系统限制,任何用户都可以创建指向目录的符号链接
- 引入符号链接的原因就是为了避开硬链接的一些限制,软连接文件类似于windows底下的快捷方式,它实际傻瓜式一个特殊的文件
- 在符号连接中,文件实际上式一个文本文件,其中包含着另一个文件的位置信息