文件的元数据
文件系统中的数据分为两类:数据和元数据
数据:指的是普通文件中的实际数据
元数据:指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者、以及文件数据块的分布信息等等
数据(Data)
即指文件的数据内容是存放在文件对应的数据块中的,数据块是记录文件真实内容的地方
元数据(Metadata)
其它文件保存信息常常伴随着文件自身保存在文件系统中。文件长度可能是分配给这个文件的区块数,也可能是这个文件实际的字节数。文件最后修改时间也许记录在文件的时间戳中。有的文件系统还保存文件的创建时间,最后访问时间及属性修改时间。(不过大多数早期的文件系统不记录文件的时间信息)其它信息还包括文件设备类型(如:区块数,字符集,套接口,子目录等等),文件所有者的ID,组ID,还有访问权限(如:只读,可执行等等)。
查看文件的元数据信息需要用到一个命令:stat
stat命令的作用为显示文件的状态信息,输出的信息比ls命令输出的信息更加详细。
[root@lb-test2 ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 8878329 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-29 08:55:43.695435888 +0000
Modify: 2020-02-29 08:55:43.695435888 +0000
Change: 2020-02-29 08:55:43.695435888 +0000
Birth: -
File #文件名
Size #大小(单位:B)
Blocks #文件所占用的块的个数
IO Block #IO 块大小
regular file #这里是显示文件的类型,这是一个普通文件
Device #所在设备
Inode #文件的inode编号
Links #文件硬链接次数
Access(第一个) #文件访问权限
Uid #文件Uid号以及属主
Gid #文件Gid号以及属组
Access(第二个) #文件最近一次的访问时间
Modify #文件内数据修改时间
Change #文件元数据修改时间
时间戳
1、Access:Access time(atime),是指取用文件的时间,所谓取用,常见的操作有:使用编辑器查看文件内容,使用cat命令显示文件内容;使用cp命令把该文件(即来源文件)复制成其他文件;或者在这个文件上运用grep、sed、more、less、tail、head等命令,凡是读取文件的操作,均改变文件的Access time
2、Modify:Modify time(mtime),是指修改文件内容的时间,只要文件内容有改动(如使用转向输出或转向附加的方式)或存盘的操作,就会改变文件的Modify time,平常我们使用ls –l查看文件时,显示的时间就是Modify time
3、Change:Change time(ctime),是指文件属性或文件位置改动的时间,如:使用chmod、chown、mv指令集;使用ln做文件的硬是连接,都会改变文件的Change time
修改文件时间戳信息需要使用命令:touch
示例:
1、创建空文件test.txt
[root@lb-test2 ~]# touch test.txt
[root@lb-test2 ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 8878329 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-29 09:13:17.095155490 +0000
Modify: 2020-02-29 09:13:17.095155490 +0000
Change: 2020-02-29 09:13:17.095155490 +0000
Birth: -
2、仅修改Access时间为系统当前时间
[root@lb-test2 ~]# touch -a test.txt
[root@lb-test2 ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 8878329 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-29 09:19:05.516838916 +0000
Modify: 2020-02-29 09:13:17.095155490 +0000
Change: 2020-02-29 09:19:05.516838916 +0000
Birth: -
3、仅修改Modify时间为系统当前时间
[root@lb-test2 ~]# touch -m test.txt
[root@lb-test2 ~]# stat test.txt
File: ‘test.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 801h/2049d Inode: 8878329 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-02-29 09:19:05.516838916 +0000
Modify: 2020-02-29 09:21:04.474632002 +0000
Change: 2020-02-29 09:21:04.474632002 +0000
Birth: -
通过两个例子发现无论是修改Modify时间还是Access时间,Change时间会一同修改,原因是修改了以上时间的同时,文件的属性也会跟着修改,Change时间会跟着更新为当前系统时间。
来源:CSDN
作者:Stay Hungry~!
链接:https://blog.csdn.net/weixin_43570812/article/details/104577258