目录列表中的“。”和“..”条目总是相同的吗?

目录列表中的“。”和“..”条目总是相同的吗?

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

答案1

至于实际列表:

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 ..会产生相同的输出。

答案2

不会,它们始终相同。因为这些是目录,而不是文件,所以处理方式略有不同(事实上,它们甚至不是普通目录,而是指针正如 eL01 所说,它们的处理方式与普通目录更加不同)。

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

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

显然.将具有目录创建的当前日期和时间,虽然将父目录的时间戳复制到 似乎合乎逻辑..,但事实并非如此。当您创建新目录时,两个指针都会收到当前日期和时间。从 DOS 到 Windows 7,无论是 FAT* 还是 NTFS,都是这种情况。

答案3

我实际上无法给你证据,但我认为:每个目录都有一个包含目录和文件的列表。为了能够使用相对路径,每个目录都需要这两个指针- 一个目录指向其自身.,另一个目录指向其上一级目录..- 这两个指针是在目录本身创建时创建的。

所以的时间戳..实际上不是上面目录的时间戳,而是指针到上面的目录。

相关内容