什么是目录“ //”?


12

在各种Linux机器上,您可以

cd /

cd //

使用相应的命令后,shell会说当前目录为“ /”或“ //”。

所以问题是:“ /”和“ //”之间有什么区别,如果答案是“没有区别”,那么为什么“ //”与“ /”显示的不同

BTW

cd ///
cd ////
cd /////

所有结果都会在shell中显示当前目录为“ /”

这是一个示例会话:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$

2
这似乎是特定于bash的异常。如果您尝试cd //使用csh或zsh,那么pwd它将仅显示'/'
Doug Harris 2009年

有趣-对此有所了解
sylvanaar

1
为了进行比较:cd //usr/bin给出“ // usr / bin”,但是cd /usr//bin给出“ / usr / bin”(在Bash中)。
暂停,直到另行通知。

Answers:


14

让我们问这个人自己(切斯特·拉米):

E10)为什么“ cd //”将$ PWD保留为“ //”?

POSIX.2在对“ cd”的描述中说,当规范当前工作目录时,可以用单个斜杠替换三个或更多的前导斜杠。

我认为,这是出于历史兼容性。某些版本的Unix和早期的网络文件系统使用// hostname / path形式的路径来访问服务器“ hostname”上的“ path”。


答案比John T的答案(已经不错)要
好得多。– innaM

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.