文件系统中的文件数据分为两类,分别是元数据(metadata)和数据(data)。
- 元数据:指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者、以及文件数据块的分布信息等等。
- 数据:指的是普通文件中的实际数据。
查看文件的元数据信息需要用到一个命令:stat
stat命令的作用为显示文件的状态信息,输出的信息比ll (ls -l)命令输出的信息更加详细。
例如,分别用命令ll和stat查看文件/etc/profile的元数据(metadata),如下图:[root@centos7 /]#ll /etc/profile -rw-r--r-- 1 root root 1857 Feb 29 11:43 /etc/profile [root@centos7 /]#stat /etc/profile File: ‘/etc/profile’ Size: 1857 Blocks: 8 IO Block: 4096 regular file Device: 805h/2053d Inode: 34392199 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2020-02-29 12:11:28.503009373 +0800 Modify: 2020-02-29 11:43:08.714004913 +0800 Change: 2020-02-29 11:43:08.715004913 +0800 Birth: -
元数据中比较常用的是三个时间戳数据:atime,mtime,ctime。
- Access time:atime,文件最后一次被访问的时间,如:打开文件,执行文件。
- Modify time:mtime,文件最后一次被修改的时间,如:给目录增加内容,修改文件内容(也即是修改数据(data)内容)。
- Change time:ctime,状态改动时间,是该文件的inode节点最后一次被修改的时间。文件最后一次被修改元数据的时间,如:给文件修改权限,增加链接等。所以mtime发生改变时,ctime也会改变。
命令touch可以同时刷新元数据的时间戳信息,或者利用参数修改指定时间戳的信息:
[root@centos7 /]#touch /etc/profile
[root@centos7 /]#stat /etc/profile
File: ‘/etc/profile’
Size: 1857 Blocks: 8 IO Block: 4096 regular file
Device: 805h/2053d Inode: 34392199 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-03-01 19:45:53.923220612 +0800
Modify: 2020-03-01 19:45:53.923220612 +0800
Change: 2020-03-01 19:45:53.923220612 +0800
Birth: -
- touch -a change only the access time
- touch -m change only the modification time