当我将目录更改为 时//
,它似乎将我置于一个与 非常相似但略有不同的特殊目录/
。然而,尝试添加任何进一步的斜杠(///
)只会让我陷入困境/
。
$ cd / ;pwd
/
$ cd // ;pwd
//
$ cd /// ;pwd
/
$ cd //// ;pwd
/
看起来这//
有点特殊,即使它具有相同的目录和所有内容,它仍然是 . 返回的不同字符串pwd
。为什么是这样?为什么我的工作目录可以是//
但不是///
?
答案1
//
是一种特殊情况,涵盖在“路径名”一词的 POSIX 定义:
多个连续
<slash>
字符被视为与 1 相同<slash>
,但恰好有两个前导字符的情况除外<slash>
。
在大多数系统上//
与 相同/
,但根据 POSIX 允许不同。
进一步阅读:
(我认为第一个链接是最好的。)