使用命令stat 查看inode时间戳信息
access 最后一次被访问的时间 modify 最后一次内容被修改的时间 change 最后一次被修改的时间 birth 文件创建的时间 ps:mtime与ctime的区别的在于mtime仅在文件内容被更改时发生变化,ctime在文件属性被修改时就会发生变化,这个属性就包括文件的权限,文件的大小等方面被修改时均会发生变化. 至于birth,虽然在选项中存在,但由于inode本身并不记录文件被创建时的信息,因此并无意义且通常内容为空.
? inode是什么呢?简单来说就是文件的信息存储文件,每一个文件都需要对应的inode来指定包括文件大小,时间戳,拥有人和组,权限,block所在位置,被指定数即被硬链接链接数.就相当于我们的身份证号,在系统运行时,这个系统不依靠我们的名字,或是性别来寻找我们的位置。仅需要一个身份证号码就知道我们的准确的所在地及信息。 block顾名思义就是一块,系统会为我们的硬盘划分为一个一个的小的块,而block就是当系统的储存空间被一一划掉后剩下的最小的空间。就像是我们现实中的家。
每一块硬盘再被创建的文件系统时用户就可以指定block和inode的大小.一般默认的bolck大小为4k,即系统内部存储的最小单位为4k.在此时即使你的文件大小仅为1k,实际占用时也会占用4k的大小.在硬盘的性能测试中有一项测试叫做4k读写性能测试,实际上就是硬盘对于每一个block的读写性能是衡量一个硬盘性能非常关键的因素.话归正题,每一个block的大小默认为4k,此时inode的默认大小通常为128字节,实际上是非常消耗内存的,如果尽数占用会达到硬盘的4.2%.但是我们有非常多的小文件的时候,这些文件并不会占用太多的block,但是需要指定相当多的inode.就会出现明明剩余非常多的空间,但是提示空间不足block无法使用的情况.此时就需要增加inode的大小了.
我们可以使用dh -i来查看硬盘的inode分区的使用情况.用ls -i [文件名]来查看对应文件的inode信息.也可以ls -l查看文件的详细信息. 硬链接实际之所以可以在文件的移动或修改文件名后依然可以使用就是因为硬链接链接的是文件的inode.就像是为一个房间开了两扇门.每一扇门的后边均是这个房间.而软链接就像是一个路牌,每当房间更换位置,就会使得路牌无效. inode中是不包括文件的名称信息的,因此也是当我们得知inode号码时,就可以通过find来删除inode.事实上文件的删除也就是将inode与superblock删除.这也是我们的在删除文件时为什么会这么迅速的原因.而且由于没有了inode信息,系统就会认为此处没有文件,而召回删除文件实际上就是将inode信息重新创造出来。 上面我们得知了inode是不记录文件的名称信息的,这就使得Linux系统可以在很多的特殊状态中实现文件的更新而不影响使用.因为这些文件都会被实时指认新的空间.这在windows中是无法做到的,windows的许多的文件是依靠文件名来指引的,也就是Linux中的软链接.如果文件名发生更改或是位置发生变化文件就无法使用. 我们在上面提到了superblock,superblock是什么呢?我们上边查看了inode的使用情况等信息,既然可以查看就说明inode也必然被某种东西记录着.那么记录在那呢?就是superblock,可以看出superblock就是存放block和inode使用状态的东西. 也就是文件系统基本信息,它定义的文件系统的大小,状态,也包括了inode的大小,block的大小.一旦superblock损坏文件将无法挂载,并且影响使用.然而实际上superblock是存在备份的可以通过命令来恢复.
|