【Linux】文件系统的理解

在linux下,我们使用ls -l的时候,总是能看到如下信息:

这些信息都属于文件的属性信息,而只要是信息,就需要被管理起来,要管理,就得先描述,后组织,因此就有了一个描述文件属性的结构体---inode,也就是说inode是用来保存文件属性的结构。有些人一听到inode可能觉得很陌生,但是inode实际上就是硬盘上的一段内存区域,只不过命名为inode而已,有一个文件,就有一个inode,一个inode号;10个文件,就是10个inode。

有了inode,我们查看一个文件就很方便:

linux中,操作任意一个文件,都是在特定目录下操作的,目录也是文件,目录文件里面的内容包含当前目录下的文件名和inode的映射关系。

为了更好的理解inode,我们还要了解一下文件系统:

首先理解一下管理文件系统的思想:
文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相同的结构组成。所以我们管理文件系统,只要管好期中一个分区就行,其它分区复制管理好的分区的管理方法就行,要管理好分区,又得管理好块组,这些块组里面描述的就是文件系统本身的信息

 

  • Boot Block:是启动分区,记录操作系统的启动信息
  • Super Block:存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,整个文件系统结构就被破坏了
  • Group Descriptor table:块组描述符,描述块组属性信息
  • Block Bitmap: 块位图
  • inode Bitmap: inode位图,每个bit表示一个inode是否空闲可用
  • inolde Table: 存放文件属性 如 文件大小,所有者,最近修改时间等
  • Data Block: 存放文件内容

软硬链接

建立软连接的命令:

打印一下test-s,发现打印的内容跟test里面的内容一样:

查看他们的inode时,发现他们两的inode不一样:

这就说明:test生成的软连接是一个独立的文件,有独立的inode号。

建立硬连接的命令:

查看test和创建的硬链接的inode时,发现他们两的inode是一样的:

这就说明test文件和它的硬链接共享一个inode。

软连接和硬链接的区别:

软连接是一个独立的文件,软连接有独立的inode号,它类似于windows里面的快捷方式,硬链接就是文件名和inode的映射关系,硬链接没有独立的inode号,它和目标文件共享一个inode。软硬链接的最大区别是有无inode。

硬链接数:

我们都知道,查看一个文件时,属性的第二列是硬链接的个数,如果删除上面创建的硬链接时,test的硬链接数会由2变为1:

如果我们创建一个文件,硬链接数是1,是当前文件名和inode的映射关系:

但是如果我们创建的是一个目录,此时的硬链接数为2,一个是目录名和inode的映射关系,另一个是目录里面的当前目录文件和inode的映射关系:

而且此时,当前目录的上级目录的硬链接数就会+1.

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值