目录时间
目录时间
目录时间戳的类型
mtime (Modification Time): 内容修改时间。对于目录来说,“内容”指的是目录条目列表(即文件名列表及其对应的 inode 信息)。
ctime (Status Change Time): 状态变更时间。当目录的元数据(如权限、所有者、链接数等)或目录条目列表发生变化时更新。
atime (Access Time): 最后访问时间。目录被读取(例如列出文件)时更新(取决于挂载选项 noatime 或 relatime)。
btime(Brith Time): 目录创建时间
什么情况下目录的 mtime 会变?
目录的 mtime 只有在目录条目列表发生变化时才会更新,具体包括:
创建新文件或子目录
删除文件或子目录
重命名文件或子目录
移动文件到该目录(从一个目录移动到另一个目录)
在这些情况下,目录的“内容”(即条目列表)被修改了,所以 mtime 会更新。
修改目录内文件的内容时,会发生什么?
当你修改一个已存在文件的内容时(例如编辑文本文件、向日志文件追加内容):
该文件的 mtime 和 ctime 会更新。
其父目录的条目列表没有变化(文件还是那个文件,inode 通常也不变),因此父目录的 mtime 保持不变。
但是,父目录的 ctime 会更新,因为文件的状态(包括大小、链接数、内容等元数据)发生了变化,这被记录在目录所引用的 inode 信息中,属于目录元数据的“间接”变化,从而触发 ctime 更新。
一般mtime变化ctime都会
例外:
使用 utimensat() 系统调用直接修改 mtime
恢复备份时保留原始时间戳