什么时候会出现“。”和“..”条目在目录列表中不同吗?(我知道它们代表两个不同的目录,但是在默认的 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
我实际上无法给你证据,但我认为:每个目录都有一个包含目录和文件的列表。为了能够使用相对路径,每个目录都需要这两个指针- 一个目录指向其自身.
,另一个目录指向其上一级目录..
- 这两个指针是在目录本身创建时创建的。
所以的时间戳..
实际上不是上面目录的时间戳,而是指针到上面的目录。