为什么`//`仅显示第一级目录?

为什么`//`仅显示第一级目录?

对于根目录,//提示符中将显示:

───────────────────────────────────────────────────────────────────────────────
rick@alien:~$ cd /
───────────────────────────────────────────────────────────────────────────────
rick@alien:/$ cd //
───────────────────────────────────────────────────────────────────────────────
rick@alien://$ cd ///
───────────────────────────────────────────────────────────────────────────────
rick@alien:/$ 

您可以切换到//目录。但是当您切换到///目录时,它会带您返回/

但是子目录的显示方式不同:

───────────────────────────────────────────────────────────────────────────────
rick@alien:~$ cd /usr
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr$ cd /usr//src
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr/src$ 
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr/src$ cd //usr
───────────────────────────────────────────────────────────────────────────────
rick@alien://usr$ 
───────────────────────────────────────────────────────────────────────────────
rick@alien://usr$ cd ///usr
───────────────────────────────────────────────────────────────────────────────
rick@alien:/usr$ 

如您所见,在子目录中//会自动转换为单个。但是该规则不适用于第一级目录。/

为什么//显示顶级目录但不显示子目录?

答案1

第二个斜线没有任何意义,系统正确的做法是将其视为单个斜线。

您的 shell 正在规范化路径,以便在除以下情况之外的所有情况下都显示没有附加斜杠的路径:当路径仅以两个斜杠开头时。在这种情况下,shell 根据 POSIX 标准保留了第二个斜杠,该标准允许以两个斜杠开头的路径具有由上下文定义的特殊含义。但是,在这种情况下,没有特殊含义,即使 shell 保留了它,它最终也会被忽略。

相关内容