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