为什么我可以 cd 到 // 但不能 /// 或 //// 或 ///// 或 ...

为什么我可以 cd 到 // 但不能 /// 或 //// 或 ///// 或 ...

当我将目录更改为 时//,它似乎将我置于一个与 非常相似但略有不同的特殊目录/。然而,尝试添加任何进一步的斜杠(///)只会让我陷入困境/

$ cd /    ;pwd
/
$ cd //   ;pwd
//
$ cd ///  ;pwd
/
$ cd //// ;pwd
/

看起来这//有点特殊,即使它具有相同的目录和所有内容,它仍然是 . 返回的不同字符串pwd。为什么是这样?为什么我的工作目录可以是//但不是///

答案1

//是一种特殊情况,涵盖在“路径名”一词的 POSIX 定义:

多个连续<slash>字符被视为与 1 相同<slash>,但恰好有两个前导字符的情况除外<slash>

在大多数系统上//与 相同/,但根据 POSIX 允许不同。

进一步阅读:

(我认为第一个链接是最好的。)

相关内容