When does a UNIX directory change its timestamp

懵懂的女人 提交于 2019-11-29 02:06:22

问题


I used "touch" on a file, updating the file's timestamp but the parent directory's timestamp did not change. However, (as expected) when I created a new file within the parent directory, the directory's timestamp did change.

What criteria do UNIX-like operating systems (specifically AIX) use to determine when to update the timestamp of a directory?


回答1:


The timestamp is updated when the data that represents the directory changes. A change in a subdirectory of directory D does not change anything in the representation of D because D only points to the subdirectory, not to what's inside it. On the other hand, creating a file in D changes the block of data on disk that represents D.




回答2:


A directory's timestamp is changed when the Directory itself is changed. The directory contains, among other things, a list of the inodes of the files in the directory so when you change the content of the directory by adding or removing files then the Directories timestamp will be updated.




回答3:


You can use the stat command to find the modified time, creation time etc of a file/directory. Refer to https://linux.die.net/man/2/stat

The article states: st_mtime of a directory is changed by the creation or deletion of files in that directory. The st_mtime field is not changed for changes in owner, group, hard link count, or mode.



来源:https://stackoverflow.com/questions/3451863/when-does-a-unix-directory-change-its-timestamp

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!