一 文件的属性信息
查看/root下文件属性
[root@localhost ~]# ll
total 20
-rw-------. 1 root root 1579 Mar 4 2018 anaconda-ks.cfg
drwxr-xr-x. 16 root root 174 Mar 10 08:07 C++
-rw-r--r--. 1 root root 15080 Oct 3 2017 epel-release-latest-7.noarch.rpm
[root@localhost ~]# ls -l
total 20
-rw-------. 1 root root 1579 Mar 4 2018 anaconda-ks.cfg
drwxr-xr-x. 16 root root 174 Mar 10 08:07 C++
-rw-r--r--. 1 root root 15080 Oct 3 2017 epel-release-latest-7.noarch.rpm
二 i节点基本概念
i节点包含文件的元数据,具体包括以下内容:
1 i节点号
每个inode都有一个号码,操作系统用inode号码来识别不同的文件。
Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件。对于系统来说,文件名只是inode号码便于识别的别称或者绰号。
表面上,用户通过文件名,打开文件。实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;最后,根据inode信息,找到文件数据所在的block,读出数据。
使用ls -i命令,可以看到文件名对应的inode号码。
[root@localhost ~]# ls -i
100663363 anaconda-ks.cfg 67170753 C++ 100663382 epel-release-latest-7.noarch.rpm
2 文件类型
字符“-”表示普通文件,字符“d”表示目录等等。
3 权限
权限分为可读权限、可写权限、可执行权限等,系统使用一组数字来表示某个文件或目录的权限。
4 文件的字节数
5 文件的拥有者
6 文件的所属组
7 文件的时间戳
7.1 ctime:表示文件的i节点上一次变动的时间。
7.2 mtime:表示文件内容上一次变动时间。
7.3 atime:表示文件上一次访问的时间。
8 硬链接数
9 存在文件纯数据的“块”的位置,即真正存放文件数据的数据块指针。
10 实战
stat命令查看某个文件的i节点
[root@localhost ~]# stat anaconda-ks.cfg
File: ‘anaconda-ks.cfg’
Size: 1579 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 100663363 Links: 1
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2018-03-04 06:29:19.354992275 +0800
Modify: 2018-03-04 06:29:19.356992272 +0800
Change: 2018-03-04 06:29:19.356992272 +0800
Birth: -
查看i节点的使用状态
每个i节点的大小一般是128字节或256字节。i节点的总数在格式化时候就会给定,一般每1KB或2KB就设置一个i节点。
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/cl-root 20826112 80777 20745335 1% /
devtmpfs 124308 373 123935 1% /dev
tmpfs 127023 1 127022 1% /dev/shm
tmpfs 127023 436 126587 1% /run
tmpfs 127023 16 127007 1% /sys/fs/cgroup
/dev/sda1 524288 339 523949 1% /boot
/dev/mapper/cl-home 10168320 7 10168313 1% /home
tmpfs 127023 1 127022 1% /run/user/0
/dev/mapper/cl-root的i节点数为20826112,已用 80777,还剩20745335,我们在/root下新建一个文件,然后再观察这一行的变化。
[root@localhost ~]# touch test
[root@localhost ~]# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/mapper/cl-root 20826112 80778 20745334 1% /
devtmpfs 124308 373 123935 1% /dev
tmpfs 127023 1 127022 1% /dev/shm
tmpfs 127023 436 126587 1% /run
tmpfs 127023 16 127007 1% /sys/fs/cgroup
/dev/sda1 524288 339 523949 1% /boot
/dev/mapper/cl-home 10168320 7 10168313 1% /home
tmpfs 127023 1 127022 1% /run/user/0
/dev/mapper/cl-root的可用i节点减1,变为20745334。