目录
inode和block概述
文件数据包括元信息与实际数据
文件存储在硬盘上,硬盘最小存储单位是“扇区”,每个扇区存储512字节
block(块)
连续的八个扇区组成一个 block(4096b)
示例:5Kb 就需要2个block
是文件存取的最小单位
inode(索引节点)
中文译名为“索引节点”,也叫i节点
用于存储文件元信息
CentOS 5→ext3
CentOS 6→ext4
CentOS7→xfs CentOS7系统中默认使用XFS类型格式
文件系统类型都是向下兼容
在系统中,不能直接将内容直接写入硬件设备文件,必须要通过挂载点将数据变相的写入文件
美
inode 包含很多的文件元信息,但不包含文件名
文件的字节数
该文件对应的节点号(inode号)
文件拥有者的 UserID(用户)
文件的GroupID (所属组)
文件的读、写、执行权限
文件的类型
文件的时间戳
该文件或某陆存放在磁盘的位置
stat命令可以查看某个文件的inode信息
如:stat aa.txt
ls -i a.txt 只查看这个a.txt对应的(inode)节点号
Linux 系统文件有三个主要的时间属性
ctime(change time);atime(access time);mtime(modify time)
ctime(change time) 是最后一次改变文件或目录(属性)的时间,例如执行 chmod,chown 等命令
atime(access time)是最后一次访问文件或目录的时间
mtime(modify time)是最后一次修改文件或目录(内容)的时间
目录文件的结构
创建目录的目的就是为了更好的组织文件
一般在linux系统中,系统识别每一个文件和目录的时候,识别的不是文件目录名,识别的是inode节点号,创建文件或目录时,系统会自动分配一个inode节点号
目录也是一种文件
目录文件的结构
每个inode都有一个号码,操作系统用inode号码来识别不同的文件
Linux系统内部不使用文件名,而使用inode号码来识别文件
对于用户,文件名只是inode号码便于识别的别称
用户通过文件名打开文件时,系统内部的过程
1.系统找到这个文件名对应的inode号码
2.通过inode号码,获取inode信息
3.根据inode信息,找到文件数据所在的block,读出数据
硬盘分区后的结构
访问文件的简单流程
inode也会消耗硬盘空间
每个inode的大小
一般是128字节或256字节
格式化文件系统时确定inode的总数
使用df -i命令可以查看每个硬盘分区的inode总数和已经使用的数量
inode的特殊作用
由于inode号码与文件名分离,导致一些Unix/Linux系统具有以下的现象
当文件名包含特殊字符,可能无法正常删除文件,直接删除inode,也可以删除文件
移动或重命名文件时,只改变文件名,不影响inode号码
打开一个文件后,系统通过inode号码来识别该文件,不再考虑文件名