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

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

在 debian 和基于 debian 的版本上进行了测试:

$ cd // && pwd && ls
//
bin   build  dev  home ...

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

答案1

根据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.

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

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

stat -c "%i" .

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

答案2

这个问题已经得到解答这里

在大多数POSIX系统会忽略多个斜线。

相关内容