题 在Linux中,“cd //”中的双斜杠是什么意思? [重复]


这个问题在这里已有答案:

我输了一个命令 cd // 代替 cd / 错误而不是得到一个错误,因为我期望shell(Bash)显示一个提示,好像我在 // 目录:-

<username>@<hostname>://$
<username>@<hostname>://$ pwd
//

列出目录的内容显示它与之相同 /

到底是什么 cd // 做和有什么区别 cd /


30
2017-12-19 20:15


起源


没有区别。试试“//////////”,它也会起作用。 - Ernest Friedman-Hill
“//////////”有效,但我用一个'/'得到了一个不同的提示。 - vitaut
属于Linux堆栈,这显然是偏离主题的。 - Ernest Friedman-Hill
bash内置 pwd 命令会记住你给它的字符串(但在某些情况下会将其标准化)。 /bin/pwd 遍历从当前目录的位置遍历的完整路径 .. 根据需要链接,并将打印 /。 - Keith Thompson


答案:


实际上它没有任何意义,被忽略了。

来自 Bash FAQ E10:

E10)为什么'cd //'将$ PWD留作'//'?

POSIX.2,在其'cd'的描述中,表示三个或更多领先   规范化时,斜杠可以用一个斜杠替换   当前的工作目录。

我认为这是历史兼容性。某些版本的   Unix和早期的网络文件系统,使用了表单的路径   //访问服务器'hostname'上'path'的主机名/路径。

也是 Unix标准 状态:

可以解释以两个连续斜杠开头的路径名   以实现定义的方式,虽然超过两个领先   斜杠应视为单斜杠。


39
2017-12-19 20:17





这个 回答 在AskUbuntu上确认它们是同一个目录。此外,它有助于引用 POSIX路径名解析规范

由单个斜杠组成的路径名将解析为进程的根目录。无法成功解析空路径名。以两个连续斜杠开头的路径名可以以实现定义的方式解释,但是应将两个以上的主斜杠视为单个斜杠。


15
2017-12-19 20:21