一、inode和block
文件、扇区
文件是存储在硬盘上的,硬盘的最小存储单位叫做“扇区”(sector),每个扇区存储512字节。
块(block)
一般连续的八个扇区组成了一个块,一个块是4K,是文件存取的最小单位。操作系统读取硬 盘的时候,是一次性连续读取多个扇区,就是一块一块的读取
inode(索引节点)
- inode不包含文件名。文件名是存放在目录当中的。Linux 系统中一切皆文件,因此目录也是一种文件。
- inode是存储文件元信息(比如文件的创建者、创建日期、文件大小、文件权限等)的区域。
- 每个inode都有一个号码,操作系统用inode号码来识别不同的文件。Linux 系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称,文件名和inode号码是一一对应关系, 每个inode号码对应一个文件名
inode里面存的元信息
- 文件的字节数
- 文件拥有者的User ID
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳
- 注:不包含文件名
总结:文件存储时,文件名和文件数据是分开存储的,文件数据包含元信息和实际数据
文件名是在目录文集里的。
如何查看文件的inode号
1. ls -i + 文件名 例:ls -i 123.txt
2. stat + 文件名 例:stat 123.txt
其中stat命令查看出有三个字段
- ctime(change time:最近改动)最后一次改变文件或目录(属性)的时间
- atime(access time:最近访问)最后一次访问文件或目录的时间
- mtime(modify time:最近更改)最后一次修改文件或目录(内容)的时间
inode大小
inode也会消耗硬盘空间,所以格式化的时候,操作系统自动将硬盘分成两个区域。一个是数 据区,存放文件数据;另一个是inode 区,存放inode 所包含的信息。每个inode 的大小,一般 是128字节或256字节。
通常情况下不需要关注单个inode的大小,而是需要重点关注inode总数。inode的总数在格式 化时就给定了,执行"df-i”命令即可查看每个硬盘分区对应的的inode总数和已经使用的inode 数量。
由于indoe号码与文件名分离,导致Linux系统具备以下几种特有的现象:
(inode