題 目錄列表中的“。”和“..”條目是否始終相同?


什麼時候會“。”和“..”條目 在目錄列表中 不同? (我知道它們代表兩個不同的目錄,但它們總是在默認的dir命令中以相同的日期和時間列出相同的內容。它們是否有所不同?)


13
2017-09-13 18:50


起源


你能給出一個例子(可能是一個屏幕截圖) - ChrisF


答案:


至於實際上市:

27/08/2011  11:23    <DIR>          .
27/08/2011  11:23    <DIR>          ..

他們正在使用當前目錄的日期。如果你開始 C:\Users\Chris (比方說)你可能會得到上述內容。但是當你上去的時候 C:\Users 你得到:

26/07/2011  21:20    <DIR>          .
26/07/2011  21:20    <DIR>          ..

所以日期 .. 在第一種情況下與日期不一樣 . 在第二。這顯然是錯誤的,因為它們(或應該是)同一目錄。然而, . 和 .. 是對當前目錄和父目錄的引用,並且都是在創建目錄的同時創建的 - 所以它實際上是正確的(感謝Synetech inc指出這一點)

時間戳唯一不同的是一個或另一個 . 要么 .. 被重建了。


原答案:

. 表示當前目錄。

.. 表示父目錄。

所以在正常情況下,他們總是不同的。

它們產生相同結果的唯一時間是當您位於磁盤的根目錄時。所以在 C:\>  dir . 和 dir .. 產生相同的輸出。


26
2017-09-13 18:54



回答這一點,很棒。 - ppuschmann
編輯強調這個問題是關於他們在dir列表中的出現。 - Witness Protection ID 44583292
@mike - 試圖回答修改後的問題以證明投票的合理性;) - ChrisF
那是錯的,因為 ..如果沒有給出父目錄的時間戳,則會給出當前目錄的時間戳。這是因為 . 和 .. 都是在創建目錄時創建的。 - Synetech
@Synetech - 啊!便士下降 - ChrisF


不,他們永遠都是一樣的。因為這些是目錄而不是文件,所以它們的處理方式略有不同(事實上,它們甚至不是普通的目錄,它們都是 指針 正如eL01所說的那樣,它們的處理方式與普通目錄不同。

創建目錄時,會自動創建兩個條目:

  • . 指向新創建的目錄
  • .. 指向新目錄的父級

明顯 . 將具有創建目錄的當前日期和時間,並且對於要復製到的父目錄的時間戳似乎是合乎邏輯的 ..,這不是它的工作原理。創建新目錄時,兩個指針都會收到當前日期和時間。在DOS *和NTFS上從DOS到Windows 7就是這種情況。


14
2017-09-13 22:12



+1因為看起來你是那個想出ChrisF現在提出的答案的人;-) - Jonas Heidelberg
@Jonas,實際上,ChrisF的答案與大多數人會做出同樣錯誤的假設:那個 .. 會有父母的時間戳。 (如果有一天,一個新的文件系統-WinFS?我最終會這樣做的話,我不會感到驚訝)。 - Synetech
從他開始 第4次修訂 我會說他不再做那個假設了。 - Jonas Heidelberg
@Jonas,好的。我沒有看到編輯。哦,不管怎麼說,他正在獲得新的選票;我想這是編輯功能的重點。 - Synetech
我應該在最新版本中記下你 - 我現在就這樣做。 - ChrisF


我實際上不能給你證明,但我認為: 每個目錄都包含一個包含目錄和文件的列表。為了能夠使用相對路徑,每個目錄都需要這兩個 指針  - 一個人 . 和上面一級的其他目錄 ..  - 那兩個 指針 只是在創建目錄本身時創建。

所以時間戳 .. 實際上不是上面目錄的時間戳,而是時間戳 指針 到上面的目錄。


4
2017-09-13 21:04



那是正確的。該 .. entry被賦予創建當前目錄的當前日期和時間的時間戳。 - Synetech