【发布时间】:2011-03-27 23:35:09
【问题描述】:
我在文件上使用了“触摸”,更新了文件的时间戳,但父目录的时间戳没有改变。但是,(如预期的那样)当我在父目录中创建一个新文件时,该目录的时间戳确实发生了变化。
类 UNIX 操作系统(特别是 AIX)使用什么标准来确定何时更新目录的时间戳?
【问题讨论】:
标签: unix unix-timestamp
我在文件上使用了“触摸”,更新了文件的时间戳,但父目录的时间戳没有改变。但是,(如预期的那样)当我在父目录中创建一个新文件时,该目录的时间戳确实发生了变化。
类 UNIX 操作系统(特别是 AIX)使用什么标准来确定何时更新目录的时间戳?
【问题讨论】:
标签: unix unix-timestamp
当目录中存在任何文件/目录的添加或删除时,该目录被视为已更改。如果现有文件/目录刚刚更新,则父目录时间戳不会改变。
【讨论】:
您可以使用 stat 命令来查找文件/目录的修改时间、创建时间等。 参考https://linux.die.net/man/2/stat
文章指出: 目录的 st_mtime 通过在该目录中创建或删除文件而更改。 st_mtime 字段不会因所有者、组、硬链接计数或模式的更改而更改。
【讨论】:
目录本身更改时,目录的时间戳也会更改。该目录包含目录中文件的 inode 列表等内容,因此当您通过添加或删除文件来更改目录的内容时,目录时间戳将被更新。
【讨论】:
时间戳会在代表目录的数据发生变化时更新。目录 D 的子目录中的更改不会更改 D 表示中的任何内容,因为 D 仅指向子目录,而不指向其中的内容。另一方面,在 D 中创建文件会更改磁盘上代表 D 的数据块。
【讨论】: