2016-07-26 124 views
3

我还是Linux新手,我在想:什么是Linux目录//?cd //意味着什么(将目录更改为//)

我可以使用CD更改目录(CD)的根目录/

~> cd/
/> 

使用PWD(工作目录的打印姓名)告诉我,我的根(/)

/> pwd 
/

使用ls命令(列出目录内容)我看到下面的(使用Raspbian杰西)

/> ls 
bin boot dev etc home include lib lost+found media mnt opt proc root run sbin share srv sys tmp usr var 

搞错了,我改变目录到//发现这是有效的:

~> cd // 
//> 

还使用PWD告诉我,我在一个目录名为//:

//> pwd 
// 

但使用LS我看到的是我可能还在“东西”看起来像根。

//> ls 
bin boot dev etc home include lib lost+found media mnt opt proc root run sbin share srv sys tmp usr var 

...但告诉我,这就是所谓的//(rootroot ;-)

那么,什么是目录//?

+2

它与'/'相同,但我也很奇怪为什么'cd //'将当前目录设置为'//'' – yoones

+1

显然,每两个'/'都被剥离:'cd ///'进入' /'和'cd ////'到'//'。 – fedorqui

+1

完全覆盖[unix,以'/'和'//'开头的路径之间的区别(http://unix.stackexchange.com/q/12283/40596),它是从[so]迁移而来的。 – fedorqui

回答

7

在Linux(和大多数其他平台)中,路径中的多个斜线被解释为与单斜线相同。然而,POSIX specification指出:

与两个连续的斜线可以在一个实现定义的方式来解释,尽管多于两个斜线开头应作为一个单一的斜杠被处理开头的路径名。

//可能为特殊目的而保留(例如:访问Cygwin中的网络驱动器)。但是,如果您在Linux中检查/和//,则应该看到相同的内容。