目录
[五、 深入理解目录的引用计数count:](#五、 深入理解目录的引用计数count:)
一、前提:
1.软链接,本质是一个独立文件!
2.硬链接,本质是多个文件名共用一个inode。
二、ln指令:
软链接:
ln -s file.txt file-soft.link (软链接)
软链接有独立的inode,软链接内容上,保存的是目标文件的路径。
(等同于windows中的快捷方式)
硬链接:
ln file.txt file-hard.link (硬链接 )
硬链接不是独立的文件,没有独立的inode,硬链接本质就是一组文件名和已经存在的文件的映射关系。{当前目录的内部,新增文件名和原来文件inode的映射}
三、再次谈论inode结构体:
inode结构体中还存在一个count引用计数,用来看有多少个文件指向同一个inode
![](https://i-blog.csdnimg.cn/direct/68708b7fcef344e2af33e721a0bc3c6f.png)
四、当删除原文件对软硬链接的影响:
1.软链接,空有原文件的地址,找不到原文件,软链接失效。文件数据块真的被删除。
2.硬链接,inode结构体中的count会减一,但是文件数据块不会被删除。硬链接还是可以使用。
五、 深入理解目录的引用计数count:
![](https://i-blog.csdnimg.cn/direct/8683a441e4934f29ba25a791523c7c9a.png)
默认情况下,一个目录含义两个硬链接。一个普通文件含义一个硬链接。
因为**./**表示当前路径,是一个硬链接数。
同理,如果我在communication文件夹下创建3个文件夹,那么communication目录就会有5个硬链接数,因为../指向上一级目录。
![](https://i-blog.csdnimg.cn/direct/7e4714454ccc43dbaf97db883f560635.png)
注意:在linux中,不允许对目录新建硬链接。(会形成环状路径),防止死循环。**./和../**特殊处理。
六、软硬链接的作用:
软链接是一种快捷方式:
- 允许跨文件系统创建链接,即可以在一个文件系统上为另一个文件系统上的文件创建链接。
硬链接:
- 增加了一个文件的入口点,使得同一个文件可以有多个名称。
- 做文件备份,防止误删操作。