2010-08-10 70 views
35

我在一個文件上使用了「touch」,更新了文件的時間戳,但父目錄的時間戳沒有改變。但是,(如預期的那樣)當我在父目錄中創建一個新文件時,目錄的時間戳確實發生了變化。什麼時候一個UNIX目錄改變它的時間戳

類UNIX操作系統(特別是AIX)使用什麼標準來確定何時更新目錄的時間戳?

回答

26

當表示目錄的數據更改時,時間戳更新。目錄D的子目錄中的更改不會改變D的表示中的任何內容,因爲D只指向子目錄,而不指向子目錄中的內容。另一方面,在D中創建文件會更改代表D的磁盤上的數據塊。

12

當目錄本身發生更改時,目錄的時間戳發生更改。該目錄包含目錄中文件的inode列表,因此當您通過添加或刪除文件來更改目錄的內容時,目錄時間戳將被更新。

+0

你的意思是,如果與一個目錄關聯的塊的數量發生變化,那麼它的修改時間會發生變化? – 2013-12-04 09:09:35

+0

不完全。添加或刪除文件時,目錄時間戳會發生變化。這可能會導致目錄中的塊數量發生變化,但不一定會發生變化。塊將能夠存儲許多inode記錄,因此每增加一個新文件塊的數量都不會改變。 – 2013-12-04 10:37:44

-3

可以使用stat命令查找文件/目錄的修改時間,創建時間等。 請參閱http://linux.about.com/library/cmd/blcmdl2_stat.htm

該文章指出: 目錄的st_mtime是通過創建或刪除該目錄中的文件來更改的。 st_mtime字段不會更改所有者,組,硬鏈接數或模式中的更改。

+4

謝謝你的回覆,但是這個迴應沒有回答任何原始問題。問題是關於用來確定一個操作的標準(更新時間戳),而不是用來完成操作的C庫。 – Scrubbie 2010-08-10 18:16:42