一、inode节点理解
inode(索引节点):存储文件元信息的区域
扇区:在linux系统中,最小的存储单位,通常为512字节(0.5kb)
block:linux系统中文件最小的存取区域(操作系统读取硬盘时,一次性连续读取多个扇区,即一次性读取一个块),每个块中通常包含8个扇区,大小为4k
1、看完上面三个名词的解释后,再来看看inode的作用:
1.1、文件数据在块中(一次性可占用多个扇区,且最小占用一个块),那么文件的元信息(创建者、创建日期、大小等)需要找一个地方来储存,这个储存区域就是inode(俗称索引节点),每个文件都有一个inode来存储文件的元信息
1.2、一般inode节点中储存有如下信息:
* 文件的字节数
* 文件拥有者的User ID
* 文件的Group ID
* 文件的读、写、执行权限
* 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
* 链接数,即有多少文件名指向这个inode
* 文件数据block的位置
1.3、命令:stat + 文件名,查看某个文件的inode信息
1.4、inode大小:
inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。假定在一块1GB的硬盘中,每个inode节点的大小为128字节,每1KB就设置一个inode,那么inode table的大小就会达到128MB,占整块硬盘的12.8%。
查看每个硬盘分区的inode总数和已经使用的数量,可以使用df命令。
2、再来看看linux系统读取文件的过程:
2.1、系统找到这个文件名对应的inode号码
2.2、系统根据这个inode号码读取文件的元信息
2.3、根据inode信息,找到文件数据所在的block,读出数据
二、硬链接概念理解
我们知道,一般情况下,文件名与inode是一一对应的关系(然而事实上系统只会识别文件的inode号,而所谓的文件名不过是我们为inode定义的别名),但是在linux系统中,可以出现多个文件名对应一个inode号的情况,这就是所谓的硬链接。
命令:ln 文件名1 文件名2
该命令便可以创建硬链接,这样便使多个文件名对应一个inode,如果修改其中一个文件的内容,其他的文件内容会相应改变,但是如果删除其中一个文件,则不影响另一个文件的访问。
最后,我们可以通过删除inode节点来删除因为某些原因无法删除的文件
命令: rm `find ./-inum 388666`
本文转自奇迹的少年博客51CTO博客,原文链接http://blog.51cto.com/raffaelexr/1719726如需转载请自行联系原作者
liliangchun