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

时间:2013-12-19 20:15:27

标签: linux bash shell directory-structure cd

我错误地输入了一个命令cd //而不是cd /而没有收到错误,因为我预计shell(Bash)会显示一个提示,好像我在{ {1}}目录: -

//

列出目录的内容显示它与<username>@<hostname>://$ <username>@<hostname>://$ pwd // 相同。

那么/究竟做了什么以及与cd //的区别是什么?

2 个答案:

答案 0 :(得分:43)

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

来自Bash FAQ E10:

  

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

     

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

     

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

同样是Unix standards州:

  

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

答案 1 :(得分:16)

AskUbuntu上的这个answer确认它们是同一个目录。此外,它有助于引用POSIX Pathname Resolution specification

  

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