2012-07-17 39 views
9

讓我們澄清一下。我試圖谷歌這個,但似乎這個信息不能在一個地方找到。ctime,mtime,控制目錄,windows,linux

當創建或刪除一個文件,在Windows和Linux保持目錄的mtime變化。因爲ctime是創建時間,所以ctime也在Linux上不在Windows上更改。

如果一個文件被重新打開並寫入,保持目錄不會改變。但是,在Windows和Linux上,文件mtime都會更改,而在Linux上,ctime也會更改,在Windows上,ctime是創建時間。

這是正確的嗎?有什麼警告? Windows網絡共享有例外嗎?還是桑巴?

編輯:那些誰投票決定關閉這是題外話,請留下評論上哪個網站,你認爲這是對的話題。有噸#2的mtime /的ctime問題,只是因爲我不包括依靠這方面的知識PHP代碼片段,這並不意味着有沒有:/

+1

如果我沒有記錯,只有當編輯器保存功能刪除文件firsta然後重新創建它時,ctime纔會更改。如果你只是打開文件覆蓋,那麼ctime不會改變,只有mtime。 – 2012-07-17 16:06:34

+0

Linux有X個文件系統,我可以想象這些都可以做到(稍微或完全)不同。不,即使你願意,你也無法一勞永逸地澄清這一點。這不是IT的工作方式。 – hakre 2012-10-04 17:31:57

+0

這就像說['getdents'(http://www.kernel.org/doc/man-pages/online/pages/man2/getdents.2.html)對不同的文件系統略有不同的返回值。當然也有這個的語義和期望。 – chx 2012-10-04 23:22:41

回答

4

認爲它是這樣的:

目錄是一個文件,它保存指向文件的指針(或「鏈接」)。

由於是:

  • 更改文件的內容不會影響目錄
    (除非該文件第一次刪除,然後再用相同的名字再次創建,由提到Gabor Garami以上)

  • 添加,刪除或重命名文件將更改目錄文件
    的內容,這將導致其ctime/mtime隨着您的變化而改變e描述,取決於操作系統

+0

我知道它應該是什麼,但這不是問題......我們正在討論Windows,對吧? – chx 2012-07-18 14:09:19

+0

那麼,在這種情況下,我們正在談論哲學而不是科學......我猜測每個Windows版本都會有自己的行爲。建議您離開這條路線並尋找完全不同的解決方案。 – Gonen 2012-07-18 22:19:19

+1

我所追求的是「是的,這是預期的行爲,有人看到不同嗎?」答案看起來像「通過Netware 286上的Windows ME網絡實際上......」 – chx 2012-07-19 01:53:39