什么是目录“//”?

syl*_*aar 12 linux bash filesystems

在各种 Linux 机器上,您可以

cd /
Run Code Online (Sandbox Code Playgroud)

cd //
Run Code Online (Sandbox Code Playgroud)

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

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

顺便提一句

cd ///
cd ////
cd /////
Run Code Online (Sandbox Code Playgroud)

所有结果都在 shell 中说当前目录是“/”

这是一个示例会话:

[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$ cd //
[user@host //]$ cd /
[user@host /]$
Run Code Online (Sandbox Code Playgroud)

Den*_*son 14

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

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

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

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


Joh*_*n T 9

它不是一个实际的目录,它是 bash 特有的问题。它在Linux 文档项目中被引用。

  • 为什么没有人修复它?或者有吗? (4认同)