Linux文件系统(一)

开始学习Linux的文件系统和一些相关的操作。没有特殊指明时,下文的文件系统均指最常见的ext2/ext3。 

1.文件结构

        Linux中的文件和目录采用同一种结构(因此说,目录也是一种文件),都是采用inode+block表示。block(块信息)存储文件的实际内容。inode存储文件的属性(如权限,创建时间等等),inode里面最重要的信息是该文件的block块的位置。

        block,是文件系统存储文件的最小单位。在创建文件系统(也就是格式化分区)时,可以指定block的大小,有1k,2k,4k等几个候选值。一个文件,至少占用一个block;一个大文件,很显然需要占用多个block。文件占用的block信息,都保存在inode节点中。所以,文件就是由一个inode节点和一个或多个block节点构成的。操作一个文件时,会先找到该文件的inode节点,然后通过inode节点找到block节点进行相应操作。下图表明此关系:

      

                                 文件inode节点   -----> 文件block节点

 

        那么,系统如何找到一个文件的inode节点呢?答案是通过目录结构。目录也是一个文件,所以也是有inode和block够成的,但是目录的block节点存放的是特殊信息(目录没有所谓的实际内容麻),是该目录下,所有文件的文件名和文件inode节点的信息。下图表明此关系:

  

                                目录的inode节点----->目录的block节点:

                                                                          文件1名字--文件1 inode的位置

                                                                          文件2名字--文件2 inode的位置

                                                                          ......(文件1,2可以是文件也可以是目录)

        所有的文件和目录按照树状结构存储,最上面的根目录就是"/"(用过Linux的人都肯定知道吧)。所以系统只要保存根目录("/")的inode节点,就可以找到根目录的block节点,并得到根目录下某个文件或文件夹的inode节点,再获得对应的block节点,如此层层向下寻找,一定可以获得任意路径上的文件信息。

        最后,有点显而易见的结论。一个文件系统inode节点的上限,决定了该文件系统能容纳的最大文件数量(因为每个文件都需要占用一个inode节点)。

        文件系统为每个文件都分配了一个独一无二的inode编号。用命令 ls -i 可以查看一个文件indoe节点。示例截图如下:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值