如何理解目录
上一篇文章提到,每个文件都有自己的属性和内容。属性存放在inode里,内容存放在数据块Data blcoks里。
目录也是文件,所以目录也会有自己的inode和内容。目录的inode存放是自己的属性,那么目录的内容存放的是什么呢?
我们之前提到过,文件的属性里面并没有存放文件的文件名
而目录的内容里面存放的就该目录下,文件的inode和内容的映射关系。
既然知道这个,我们就可用从新的角度对目录进行解读。
既然目录是文件。那我们该如何知道目录的inode呢?
软链接
ln -s 被链接的文件 链接文件的新名字
从上面可以看到,建立软链接之后,新的文件soft-link的inode和被链接的文件file.txt的inode不一样,这说明,新的文件soft-link是一个独立的文件,它有自己的文件内容和属性。中间这个框起来的1代表硬链接数,可以看到他们的硬链接数都是1。
软链接的作用
软链接更像是windows中的快捷方式
就像我们在电脑上下载了很多程序,但是我们要运行这个程序的时候,并不是进入到这个程序的真实目录,而是在桌面上点击这个程序的快捷方式就可以运行了。
硬链接
ln 被链接的文件 硬链接文件
我们可以发现,硬链接的文件,inode和被硬链接的文件的inode是相同的。所以硬链接产生的文件不是独立的文件。
而此时,也可以发现,test.txt的硬链接数变成2了。
硬链接的作用
我们之前看到过,普通文件的硬链接数是1.那么,文件的硬链接数是多少呢?
为什么普通文件的硬链接数是1而目录文件的硬链接数是2呢?
因为目录中有.和..
而 . 就是表示的是自己的路径,所以硬链接数会为2。
如何根据目录的硬链接数判断目录中有多少个文件?