inode 和block概述
-
文件数据包括元信息与实际数据
-
文件存储在硬盘上,硬盘存储最小单位是“扇区”,每个扇区存储512字节
逻辑层面最小存储是单元格/簇
物理层面最小存储是扇区
-
block(块)4k
- 连续的八个扇区组成一个block
- 是文件存取的最小单位
-
inode(索引节点)
- 中文译名为“索引节点”,也叫i节点
- 用于存储文件元信息
一个文件必须占用一个inode,但至少占用一个block
inode的内容
inode包含文件的元信息
- 文件的字节数
- 文件拥有者的User ID
- 文件的Group ID
- 文件的读、写、执行权限
- 文件的时间戳
- …………
用stat命令可以查看某个文件的inode信息
- 示例:stat aa.txt
Linux系统文件三个主要的时间属性
- ctime(change time)最后一次改变文件或目录(属性)的时间
- atime(access time)最后一次访问文件或目录的时间
- mtime(modify time)最有一次修改文件或目录(内容)的时间
目录文件的结构
- 目录也是一种文件
- 目录文件的结构
创建一个空的abc目录就是创建一个内容为0的文件
-
每个inode都有一个号码,操作系统用于inode号码来识别不同的文件
-
Linux系统内部不适用文件名,而使用inode号码来识别文件
-
对于用户来说,文件名只是inode号码便于识别的别称
inode的号码
用户通过文件名打开文件时,系统内部的过程
- 系统找到这个文件名对应的inode号码
- 通过indoe号码,获取inode信息
- 根据inode信息,找到文件数据所在的block,读出数据
查看inode号码的办法
-
ls -i命令:查看文件名对应的inode号码
ls -i aa.txt
-
stat命令:查看文件inode信息中的inode号码
stat aa.txt
两种方法查看:
文件存储
硬盘分区后的结构
访问文件的简单流程
inode的大小
- inode也会消耗硬盘空间,每个inode的大小,一般是128字节或256字节
- 格式化文件系统(硬盘)时确定inode的总数
- 使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
inode的特殊作用
由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象:
- 当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
- 移动或重命名文件时,只改变文件名,不影响inode号码
- 打开一个文件后,系统通过inode号码来识别该文件ÿ