我在一個文件上使用了「touch」,更新了文件的時間戳,但父目錄的時間戳沒有改變。但是,(如預期的那樣)當我在父目錄中創建一個新文件時,目錄的時間戳確實發生了變化。什麼時候一個UNIX目錄改變它的時間戳
類UNIX操作系統(特別是AIX)使用什麼標準來確定何時更新目錄的時間戳?
我在一個文件上使用了「touch」,更新了文件的時間戳,但父目錄的時間戳沒有改變。但是,(如預期的那樣)當我在父目錄中創建一個新文件時,目錄的時間戳確實發生了變化。什麼時候一個UNIX目錄改變它的時間戳
類UNIX操作系統(特別是AIX)使用什麼標準來確定何時更新目錄的時間戳?
當表示目錄的數據更改時,時間戳更新。目錄D的子目錄中的更改不會改變D的表示中的任何內容,因爲D只指向子目錄,而不指向子目錄中的內容。另一方面,在D中創建文件會更改代表D的磁盤上的數據塊。
當目錄本身發生更改時,目錄的時間戳發生更改。該目錄包含目錄中文件的inode列表,因此當您通過添加或刪除文件來更改目錄的內容時,目錄時間戳將被更新。
可以使用stat命令查找文件/目錄的修改時間,創建時間等。 請參閱http://linux.about.com/library/cmd/blcmdl2_stat.htm
該文章指出: 目錄的st_mtime是通過創建或刪除該目錄中的文件來更改的。 st_mtime字段不會更改所有者,組,硬鏈接數或模式中的更改。
謝謝你的回覆,但是這個迴應沒有回答任何原始問題。問題是關於用來確定一個操作的標準(更新時間戳),而不是用來完成操作的C庫。 – Scrubbie 2010-08-10 18:16:42
你的意思是,如果與一個目錄關聯的塊的數量發生變化,那麼它的修改時間會發生變化? – 2013-12-04 09:09:35
不完全。添加或刪除文件時,目錄時間戳會發生變化。這可能會導致目錄中的塊數量發生變化,但不一定會發生變化。塊將能夠存儲許多inode記錄,因此每增加一個新文件塊的數量都不會改變。 – 2013-12-04 10:37:44