bash OSX 中 / 和 // 目录之间的区别

bash OSX 中 / 和 // 目录之间的区别

我当时正在我的系统(OSX 10.8.3 / bash 版本 3.2.48(1)-release (x86_64-apple-darwin12))上的 bash 终端上工作,我不小心输入了“cd //”而不是“cd /”来返回根目录。

奇怪的是,它将我带到“//”,当我列出时,它看起来与“/”一模一样。

所以我的问题是:这两条路径之间是否存在语义差异?
这两条路径的用途是什么?或者这是一个错误吗?

答案1

在 Unix 及其衍生版本中,多个斜线连在一起的含义与一个斜线相同。OS X 是经过认证的 Unix,因此遵循该规范。

来自关于路径名的单一 Unix 规范

[路径] 以斜杠开头,后面跟着零个或多个文件名,文件名之间用斜杠分隔。路径名可以选择性地包含一个或多个尾部斜杠。多个连续的斜杠被视为与一个斜杠相同。

唯一的特殊情况是以 开头的路径//。它的解释取决于实现(参见SUS 中的路径名解析):

以两个连续斜杠开头的路径名可以按照实现定义的方式进行解释,但两个以上的前导斜杠应被视为单个斜杠。

相关内容