为什么路径“//”有效?

bux*_*bux 6 filesystems

在 debian 和基于 debian 的测试:

$ cd // && pwd && ls
//
bin   build  dev  home ...
Run Code Online (Sandbox Code Playgroud)

为什么路径//是有效路径?

小智 12

根据POSIX 规范

A pathname that begins with two successive slashes may be interpreted in an
implementation-defined manner, although more than two leading slashes shall be
treated as a single slash.
Run Code Online (Sandbox Code Playgroud)

我猜 bash 将两个斜杠解析为一个斜杠,因此它们的含义相同。并且根据规范,cd ///也应该给出相同的输出。

您可以使用以下命令检查当前目录的 inode 编号

stat -c "%i" .

你会注意到的inode编号///是相同的。


Spa*_*ack 5

这个问题已经在这里得到了回答。

在大多数POSIX系统上,多个斜杠被简单地忽略。

  • 我们确实更喜欢答案包含内容而不是指向内容的指针。虽然这在理论上可以回答这个问题,但 [最好](​​http://meta.stackexchange.com/q/8259) 在此处包含答案的基本部分,并提供链接以供参考。 (4认同)