我错误地输入了一个命令cd //
而不是cd /
而没有收到错误,因为我预计shell(Bash)会显示一个提示,好像我在{ {1}}目录: -
//
列出目录的内容显示它与<username>@<hostname>://$
<username>@<hostname>://$ pwd
//
相同。
那么/
究竟做了什么以及与cd //
的区别是什么?
答案 0 :(得分:43)
实际上它没有任何意义,被忽略了。
E10)为什么'cd //'将$ PWD留作'//'?
POSIX.2,在其'cd'的描述中,表示三个或更多领先 规范化时,斜杠可以用单斜杠替换 当前的工作目录。
我认为这是历史兼容性。某些版本的 Unix和早期的网络文件系统,使用了表单的路径 //访问服务器'hostname'上'path'的主机名/路径。
同样是Unix standards州:
可以解释以两个连续斜杠开头的路径名 以实现定义的方式,虽然超过两个领先 斜杠应视为单斜线。
答案 1 :(得分:16)
AskUbuntu上的这个answer确认它们是同一个目录。此外,它有助于引用POSIX Pathname Resolution specification:
由单个斜杠组成的路径名将解析为进程的根目录。无法成功解析空路径名。以两个连续斜杠开头的路径名可以按实现定义的方式解释,但应将两个以上的主斜杠视为单斜杠。