为什么 / 目录有 .. 是什么意思?

Fat*_*ind 7 directory

/目录中并使用ls -a 结果将包含...

我可以理解.它是目录本身的指针的存在。它是什么具有意义../目录,而没有父目录中/

Jde*_*eBP 8

许多软件在假设上工作,事实上 POSIX.1 并没有向他们保证,但传统上是在 UNIX 系统上的情况,并且在许多 UNIX 文献中都有记载,即(引用一篇这样的 UNIX 文献):

每个目录都包含文件名 dot 和 dot-dot ( .and ..),它们的 inode 编号分别是目录及其父目录的编号。[...]所述的程序mkfs,使得初始化文件系统...根目录的具有文件系统的根目录节点号码。

— 莫里斯 J. 巴赫 (1986)。UNIX 操作系统的设计。 普伦蒂斯大厅。页。73

例如:旧的getcwd()库函数(在没有为其提供特殊内核支持的系统上)依赖于它来知道..在组合当前目录名称时何时停止跟踪条目链。当它到达自己的父目录或无法遍历到...

所以,根目录下有(或尽可能应用模式的程序而言,至少之所以出现有尽可能通过系统API看到的)一个..条目是很多东西是基于这样的假设,每一个目录都有..,和该..根是一个环可以被用于检测,一个是在根目录下。

POSIX.1实际上不保证该根目录下有一个..,只是指定程序必须考虑为一个循环的可能性,如果有一个..根目录。这是为了允许非 UNIX 系统也符合 POSIX。有文件系统,其中的不存在..指示的目录是根目录。并且,正如巴赫本人所讨论的,在根目录上方有一个目录的系统,POSIX.1 在讨论以两个斜杠开头的绝对路径名时允许(类似于 Microsoft 局域网系统中使用的通用命名约定) )。

然而,Linux(以及 Ubuntu Linux)为 UNIX 范式提供了更严格的保证。