是“。” 目录列表中的“..”条目始终相同?

Wit*_*292 13 windows dir

什么时候“。” 和目录列表中的“..”条目不同吗?(我知道它们代表两个不同的目录,但它们总是以相同的日期和时间在默认的 dir 命令中列出。它们有什么不同吗?)

Chr*_*isF 26

至于实际上市:

27/08/2011  11:23    <DIR>          .
27/08/2011  11:23    <DIR>          ..
Run Code Online (Sandbox Code Playgroud)

他们都使用当前目录的日期。如果你从C:\Users\Chris(说)开始,你可能会得到以上内容。但是当你上楼时,C:\Users你会得到:

26/07/2011  21:20    <DIR>          .
26/07/2011  21:20    <DIR>          ..
Run Code Online (Sandbox Code Playgroud)

所以..第一种情况的日期.与第二种情况的日期不同。这显然是错误的,因为它们是(或应该是)同一个目录。但是,.and..是对当前目录和父目录的引用,并且都是同时创建的 - 在创建目录时 - 所以它实际上是正确的(感谢 Synetech inc 指出这一点)

时间戳不同的唯一时间是重新创建...中的一个或另一个。


原答案:

. 表示当前目录。

.. 表示父目录。

所以在正常情况下它们总是不同的。

它们产生相同结果的唯一时间是当您位于磁盘的根目录时。所以在C:\> dir .dir ..产生相同的输出。

  • 这是错误的,因为`..` 没有给出父目录的时间戳,而是给出了当前目录的时间戳。这是因为 `.` 和 `..` 都是在创建目录时创建的。 (4认同)

Syn*_*ech 14

不,他们永远是一样的。因为这些是目录,不是文件,所以处理方式略有不同(其实它们甚至都不是普通目录,就像eL01所说的那样是指针,所以和普通目录的处理方式更不一样)。

创建目录时,会自动创建两个条目:

  • . 指向新创建的目录
  • .. 指向新目录的父目录

显然.将具有创建目录的当前日期和时间,虽然将父目录的时间戳复制到 似乎合乎逻辑..,但这不是它的工作原理。创建新目录时,两个指针都会接收当前日期和时间。从 DOS 到 Windows 7,FAT* 和 NTFS 都是这种情况。