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


13

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


1
您能举个例子吗(也许有屏幕截图)
ChrisF 2011年

Answers:


26

至于实际上市:

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


答案很重要。
ppuschmann 2011年

编辑来强调该问题是关于它们在目录列表中的出现。
见证保护ID 44583292 2011年

@mike-试图回答经修订的问题以证明选票是否合理;)
ChrisF 2011年

4
这是错误的,因为..没有给出父目录的时间戳,而是得到了当前目录的时间戳。这是因为...两者都是在创建目录时创建的。
Synetech 2011年

@Synetech-啊!一分钱掉落
ChrisF

14

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

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

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

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


1
+1,因为似乎您是ChrisF现在要提出的答案的人;-)
乔纳斯·海德堡

@Jonas,实际上,ChrisF的答案做出了一个错误的假设,即大多数人会做的:..带有父母的时间戳。(如果总有一天,一个新的文件系统WinFS?最终以这种方式执行,我不会感到惊讶)。
Synetech 2011年

从他的第4版开始,我会说他不再做这个假设了。
乔纳斯·海德堡

@Jonas,好的。我没有看到修改。哦,好吧,无论如何,他都在接受新的投票。我想这就是编辑功能的关键所在。
Synetech 2011年

我应该在最新版本中归功于您-我现在就这样做。
ChrisF 2011年

4

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

因此,时间戳..实际上不是上面目录的时间戳,而是指向上面目录的指针的时间戳。


那是对的。该..条目指定当前日期和时间的时间戳是创建当前目录时。
Synetech 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.