cd //意味着什么(将目录更改为//)

Phi*_*lex 3 linux cd root pwd

我还是一个Linux新手,我想知道:什么是Linux目录//?

我可以使用cd /将dir(cd)更改为根目录

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

使用pwd(工作目录的打印名称)告诉我我在root(/)

/> pwd
/
Run Code Online (Sandbox Code Playgroud)

使用ls(列出目录内容)我看到以下内容(使用Raspbian Jessie)

/> ls
bin  boot  dev  etc  home  include  lib  lost+found  media  mnt  opt  proc  root  run  sbin  share  srv  sys  tmp  usr  var
Run Code Online (Sandbox Code Playgroud)

我错误地将dir更改为//并发现它是有效的:

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

另外使用pwd告诉我我在一个名为//的目录中:

//> pwd
//
Run Code Online (Sandbox Code Playgroud)

但是使用ls我看到我可能仍然处于'某种东西'看起来像根.

//> ls
bin  boot  dev  etc  home  include  lib  lost+found  media  mnt  opt  proc  root  run  sbin  share  srv  sys  tmp  usr  var
Run Code Online (Sandbox Code Playgroud)

...但告诉我它叫//(rootroot ;-)

那么目录是什么//?

Zey*_*maz 7

在Linux(以及大多数其他平台)中,路径中的多个斜杠被解释为与单个斜杠相同.但是,POSIX规范声明:

以两个连续斜杠开头的路径名可以以实现定义的方式解释,但是应将两个以上的主斜杠视为单个斜杠.

//可以保留用于特殊目的(例如:访问Cygwin中的网络驱动器).但是,如果在Linux上检查/和//中的ls,您应该看到相同的内容.