什么时候会出现“。” 和目录列表中的 “ ..”条目不同?(我知道它们代表两个不同的目录,但是在默认的dir命令中,它们始终以相同的日期和时间相同地列出。它们是否有所不同?)
什么时候会出现“。” 和目录列表中的 “ ..”条目不同?(我知道它们代表两个不同的目录,但是在默认的dir命令中,它们始终以相同的日期和时间相同地列出。它们是否有所不同?)
Answers:
至于实际上市:
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 ..
产生相同的输出。
..
没有给出父目录的时间戳,而是得到了当前目录的时间戳。这是因为.
和..
两者都是在创建目录时创建的。
不,它们将始终相同。因为这些是目录,而不是文件,所以它们的处理方式略有不同(实际上,它们甚至不是普通目录,它们是eL01所说的指针,因此它们的处理方式与普通目录甚至更大)。
创建目录时,将自动创建两个条目:
.
指向新创建的目录..
指向新目录的父目录显然.
将具有创建目录的当前日期和时间,虽然将父目录的时间戳复制到似乎合乎逻辑..
,但这不是它的工作原理。创建新目录时,两个指针都将接收当前日期和时间。从DOS到Windows *在FAT *和NTFS上都是这种情况。
..
带有父母的时间戳。(如果总有一天,一个新的文件系统WinFS?最终以这种方式执行,我不会感到惊讶)。
我实际上不能给您证明,但我认为:每个目录都有一个包含目录和文件的列表。为了使使用相对路径成为可能,每个目录都需要这两个指针 -一个指向自身.
,另一个指向上一级目录..
-这两个指针是在创建目录本身时创建的。
因此,时间戳..
实际上不是上面目录的时间戳,而是指向上面目录的指针的时间戳。
..
条目指定当前日期和时间的时间戳是创建当前目录时。