我意外地输入 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$
答案 0 :(得分:1)
/
字符用作分隔符,并且 - 通常 - 任何数量的字符都可以折叠为单个字符。 (这发生在shell级别,因此当bash
正在解析您的输入时,例如)
这也是写/Users/Sean/
- ////Users////Sean//
的另一种方式。但是,“//”在某些情况下略显特殊。你仍然在根(/
),但bash
不会立即崩溃。
有关详细信息,请参阅此超级用户帖子: https://superuser.com/questions/389338/which-directory-does-path-represent-in-linux