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

Jus*_*hms 3 bash macos

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

奇怪的是,它把我带到了“//”,当我列出它时,它看起来完全像“/”。

所以我的问题是:这两条路径之间是否存在语义差异?
如果这两条路径的目的是什么?和/或这是一个错误?

slh*_*hck 5

在 Unix 和衍生版本中,多个斜杠与一个斜杠具有相同的含义。OS X 是经过认证的 Unix,因此遵循该规范。

来自关于路径名Single Unix Specification

[A path] 有一个可选的开始斜杠,后跟零个或多个由斜杠分隔的文件名。路径名可以选择包含一个或多个尾部斜杠。多个连续的斜线被认为与一个斜线相同。

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

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