文件系统----软硬链接

ls -l 或者ll查看文件,可以看到如下图所示:


ls -l 进程读取了存储在磁盘上的文件信息,然后显示出来

除了这个方式还有一个查看文件信息的方法是stat命令


我们可以关注inode的信息,一个文件只有一个inode号。这就必须了解我们的文件系统

简单的文件系统可以看成 超级块+i节点表+数据区


超级块存放文件的系统本身的信息----i节点表存放文件属性如文件大小,所有者,最近修改时间等---数据区存放文件内容

注意的一点:目录也是文件,文件的数据区存放的是目录包含的文件名和inode编号

所以如果我们要删除文件就只需要把文件对应的inode置0.

创建一个文件主要的4个操作:

1.存储属性

内核中找到一个空闲的i节点(这里是26666)。内核把文件信息记录在其中

2.存储数据

该文件需要三个磁盘块,内核找到三个空闲块:100,200,300。将内核缓冲区的第一块数据复制到100,依次累推进行存储

3.记录分配情况

文件内容顺序100,200,300存放,内核在inode上的磁盘分布区记录上述块列表

4.添加文件名到目录

新的文件名为test.c。内核入口将(26666,test.c)添加到目录文件。文件名和inode之间的对应关系将文件名和inode的属性链接起来。

文件硬链接

磁盘上的文件并不是文件名而是inode

我们对文件如下操作会有发现


inode是一样的,打开文件内容也是一样的,这也就是文件的硬链接。内核记录了这个36003219文件的链接数为2。

当我问要删除文件时干了两件事:1.在目录中删除对应的文件记录,2.将硬链接数减1,如果为0则将对应的磁盘资源进行释放。

文件软链接

我们可以通过ln -s来创建软链接来看看


我们可以发现:与硬链接最大的不同是软链接具有自由的inode。软链接存放个是如何找hi.c的路径。

如果目录中的文件特别隐藏,就可以用软链接。windows下的快捷方式就相当于软链接。

啦啦啦!!!就说到这里了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章