0

我不小心输入了cd //并惊讶地看到 OS X 将我带到了一个名为//的目录。它似乎是根目录,但我想知道为什么cd //命令没有引发错误。

//有什么特殊含义吗?

Seans-MacBook-Pro:/ sean$ cd //
Seans-MacBook-Pro:// sean$ pwd
//
Seans-MacBook-Pro:// sean$ ls
Applications            archive             net
Incompatible Software       bin             opt
Library             cores               private
Network             dev             sbin
System              etc             tmp
User Guides And Information home                usr
Users               mach_kernel         var
Volumes             mds
Seans-MacBook-Pro:// sean$ cd /
Seans-MacBook-Pro:/ sean$ ls
Applications            archive             net
Incompatible Software       bin             opt
Library             cores               private
Network             dev             sbin
System              etc             tmp
User Guides And Information home                usr
Users               mach_kernel         var
Volumes             mds

编辑

我还注意到cd ///cd ////等都解析为 root,并且不给出错误。只有cd //被注册为在//目录中。

Seans-MacBook-Pro:~ sean$ cd ///
Seans-MacBook-Pro:/ sean$ cd //
Seans-MacBook-Pro:// sean$ 
4

1 回答 1

1

/字符用作分隔符,并且 - 通常 - 任意数量的字符都可以折叠成一个。(这发生在 shell 级别,bash例如,当解析您的输入时)

这也是另一种写法/Users/Sean/- ////Users////Sean//。但是,“//”在某些情况下有些特殊。您仍然在根 ( /) 但bash不会立即折叠它。

有关更多信息,请参阅此超级用户帖子: https ://superuser.com/questions/389338/which-directory-does-path-represent-in-linux

于 2012-11-04T18:29:35.920 回答