参考:
http://www.ruanyifeng.com/blog/2011/12/inode.html
http://www.opsers.org/base/one-day-the-little-learning-linux-inode-detailed.html
http://www.cnblogs.com/sonic4x/archive/2011/08/05/2128543.html
定义:
这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
- 硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。
- 多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。
- 文件数据都储存在"块"中,必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。
inode包含文件的元信息,具体来说有以下内容:
- 文件的字节数
- 文件拥有者的User ID
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳,共有三个:ctime指inode上一次变动的时间,mtime指文件内容上一次变动的时间,atime指文件上一次打开的时间。
- 链接数,即有多少文件名指向这个inode
- 文件数据block的位置
查看:
- stat
- ls -i
大小:
inode也会消耗硬盘空间,硬盘格式化时操作系统自动将硬盘分成两个区域:
- 数据区,存放文件数据
- inode区(inode table),存放inode所包含的信息。
每个inode节点的大小,一般是128字节或256字节。
inode节点的总数,在格式化时就给定,一般是每1KB或每2KB就设置一个inode。
df -i查看
号码机制
打开文件步骤:
- 系统找到这个文件名对应的inode号码;
- 通过inode号码,获取inode信息;
- 根据inode信息,找到文件数据所在的block,读出数据。
总结:
- 1、一个Inode对应一个文件,而一个文件根据其大小,会占用多块blocks。
- 2、更为准确的来说,一个文件只对应一个Inode。因为硬链接其实不是创建新文件,只是在Directory中写入了新的对应关系而已。
- 3、当我们删除文件的时候,只是把Inode标记为可用,文件在block中的内容是没有被清除的,只有在有新的文件需要占用block的时候,才会被覆盖。
硬链接/软链接
概念:
- 硬链接 hard link 对目标文件,生成一条新的到达路径。只有该文件所有硬链接都被删除,该文件才被真正删除。
- 软链接 symbolic link 生成一个保存目标文件位置信息的文件
硬连接的2个限制:
- l 不允许给目录创建硬链接
- l 只有在同一文件系统中的文件之间才能创建链接。 即不同硬盘分区上的两个文件之间不能够建立硬链接。这是因为硬链接是通过结点指向原始文件的,而文件的i-结点在不同的文件系统中可能会不同。
inode节点:
- 硬链接文件和原始文件inode编号相同
- 软链接文件和原始文件inode编号不同