答案1
Unix 系统上有三种时间戳:
atime
:访问时间此时间戳会告诉您文件的访问最后一次,仅包括读取权限。
ctime
:更改时间此时间戳会告诉您文件属性(inode 信息)已改变最后一次。这包括所有权和权限,但内容更改也会触发此时间戳的更新。
请注意时间似乎是一个例外因为它们不会触发 ctime 更新。这可能是因为足以触发 atime 更新的简单读取访问不会对文件属性做出任何相关更改。而 ctime 的主要目的之一是帮助备份工具确定文件是否已更改。atime 是此类工具的无关信息,并且仅因为有人读取了文件而更新已更改的 atime 而更新备份是无用的。
我不确定,但有些人认为这种行为(对 atime 的更改不会更新 ctime)仅仅是由于relatime
底层文件系统的挂载选项(如)在内存中缓存和延迟 inode 中的 atime 更新,以提高内存性能,并且仅在某些条件下将它们应用于磁盘上的实际 inode(触发 ctime 更新)。
@kos 尝试过了,显然即使使用“strictatime”选项安装 FS,如果 atime 发生变化,ctime 似乎也永远不会更新。mtime
:修改时间此时间戳会告诉您文件的内容已修改最后一次。
因此,使用简单的读取访问cat FILENAME
只会更改时间,但不是时间因为没有修改任何文件属性。更改后的时间不算数。