一、inode与block
1.inode和block概述
文件数据包括元信息与实际数据,一个文件必须占用一个inode,但至少占用一个block。
扇区:文件存储在硬盘上,硬盘的最小存储单位是扇区,每个扇区存储空间是512字节。
block(块):连续的八个扇区组成一个block,block是文件存取的最小单位,用来存储文件数据。
inode(索引节点):也叫i节点,用于存储文件元信息。
2.inode的理解
(1)inode包含文件元信息:
文件的字节数
文件拥有者的User ID(UID)
文件的Group ID(GID)
文件具有的读、写、执行权限
文件的时间戳(atime、ctime、mtime)
当我们想查看某个文件的inode信息时,使用的是“stat”命令,后面直接接文件的路径和名称即可。
[root@localhost opt]# stat test/
文件:"test/"
大小:24 块:0 IO 块:4096 目录
设备:802h/2050d Inode:33574981 硬链接:2
权限:(0755/drwxr-xr-x) Uid:( 0/ root) Gid:( 0/ root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2019-08-28 11:39:33.953003238 +0800
最近更改:2019-08-28 11:39:20.023004045 +0800
最近改动:2019-08-28 11:39:20.023004045 +0800
创建时间:-
[root@localhost opt]#
(2)文件的三个主要时间属性:
atime(access time):最后一次访问文件或目录的时间
ctime(change time):最后一次改变文件或目录(属性)的时间
mtime(modify time):最后一次修改文件或目录(内容)的时间
3.inode号码
每一inode都有一个号码,操作系统是通过inode号码来识别不同文件的。Linux系统内部是不使用文件名来识别文件的,对系统而言inode号码才是文件的名字。而文件名只是便于用户去记忆的名字,相当于inode号码的别称。其实这就相当于咱们的手机通讯录,咱们平时只要记住联系人的名字就可以拨通他的手机,但真正用来连接通话的是你保存在通讯录中的手机号码。移动或重命名文件时,只会改变文件名,inode号码是不变的。
(1)用户通过文件名打开文件时,系统内部过程如下:
系统首先会找到这个文件名对应的inode号码
通过inode号码获取inode信息(查看元信息,看是否有访问权限)
根据inode信息,找到文件数据所在的block,读出数据
(2)查看inode号码的方法:
ls -i命令:查看文件名对应的inode号码
[root@localhost opt]# ls -i test/
34964204 test01.txt
[root@localhost opt]#
stat命令:查看文件i