Answers:
Unix系统上有三个时间戳记:
atime
:访问时间此时间戳告诉您上次访问文件的时间,包括仅读取访问权限。
ctime
:更改时间该时间戳告诉您文件属性(inode信息)上次更改的时间。这包括例如所有权和权限,但是内容更改也会触发此时间戳的更新。
请注意,对atime的更改似乎是一个例外,因为它们不会触发ctime更新。这可能是因为足以触发atime更新的简单读取访问不会对文件属性进行任何相关更改。ctime的主要目的之一是帮助备份工具确定文件是否已更改。对于这样的工具,atime是无关紧要的信息,而更新备份只是为了更新更改的时间,因为有人读取了该文件将是无用的。
我不确定,但是有些人认为此行为(更改为atime不会更新ctime)仅是由于relatime
基础文件系统的挂载选项(如)导致的,由于内存中的性能原因,该文件系统在inode中缓存和延迟了atime更新并且仅在某些情况下将它们应用于磁盘上的实际inode(触发ctime更新)。
@kos尝试了它,显然即使使用`strictatime``选项挂载FS时,如果atime更改,ctime似乎也不会更新。
mtime
:修改时间此时间戳告诉您上次修改文件内容的时间。
因此,cat FILENAME
仅使用atime即可进行简单的读取访问,而不会更改ctime,因为没有更改文件属性。更改后的atime不计。
cat
,您是否与之进行了检查touch
?