文章目录
- 现象
- 软链接
- 硬链接
现象
建立软链接
建立硬链接
// 删除软硬链接都可以用 unlink 指令
unlink soft-link
软链接
软链接是一个独立的文件,因为有独立的inode number
软链接的内容:目标文件所对应的路劲字符串如果我们直接查看软链接文件,就可以直接查看目标文件的内容了,这类似于Windows系统中的快捷方式;如果直接把目标文件删除,那么再去查看软链接文件,是无法查看的。
软链接类似于Windows系统中快捷方式:
硬链接
硬链接的inode编号和目标文件是一样的,硬链接不是一个独立的文件,因为没有独立的inode number,用的是目标文件的inode
属性中有一列硬链接数(文件的磁盘级引用计数,表示有多少个文件名字符串通过inode number指向inode),因此建立一个硬链接,对应的硬链接数就+1,删除一个就-1,如果减为0,就相当于删除这个文件。
为什么创建一个文件时,显示文件的硬链接数是1,但是创建一个目录时,显示硬链接数是2?
查看dir的所有信息
dir目录中.
指向dir的重命名(1314154),dir本身也是1314154,所以硬链接数是2
在dir文件中再去新建一个otherdir文件,会发现dir的硬链接数是3,这是因为在otherdir文件中存在一个..
,这指向dir
因此,任何一个目录刚开始新建的时候,硬链接数一定是2,在该目录中新建一个目录,会让该目录的硬链接数自动+1,一个目录内部有几个目录:该目录的硬链接数-2
硬链接就是一个文件名和inode的映射关系,建立硬链接,就是在指定目录下添加一个新的文件名和inode number的映射关系。
将目标文件删除后,再去查看硬链接文件,它的属性和内容依然存在,这就相当于对目标文件重命名。
Linux系统不允许给目录建立硬链接,避免形成路劲环绕
总结:
硬链接作用:
- 构建Linux的路劲结构,让我们可以使用
.
、..
来路劲定位 - 一般用来做文件备份