什么是双斜杠(//)目录?

我错误地键入了cd //而不是cd / 。 令我惊讶的是,当前目录显示为//

那个目录是什么? 它为什么存在?

 apple@snipped $ pwd /home/apple apple@snipped $ cd / apple@snipped $ pwd / apple@snipped $ cd // apple@snipped $ pwd // apple@snipped $ cd /// apple@snipped $ pwd / 

//通常与/相同。 ///必须与/相同。

ls会告诉你cd //带你到根目录,就像cd /一样。

 $ cd / $ ls bin boot dev ... $ cd // $ ls (same as above) 

确认它们绝对是同一目录的技术方法是:

 $ cd / $ stat -c "%i" . 2 $ cd // $ stat -c "%i" . 2 

它们会打印相同的inode编号,这意味着它们是相同的。

详细信息记录在POSIX路径名解析规范中 :

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