【问题标题】:What does double slash // in `cd //` mean in Linux? [duplicate]`cd //` 中的双斜杠 // 在 Linux 中是什么意思? [复制]
【发布时间】:2013-12-19 20:15:27
【问题描述】:

我错误地输入了一个命令 cd // 而不是 cd /,而不是像我期望的那样收到错误,shell (Bash) 显示了一个提示,就好像我在 // 目录中一样: -

<username>@<hostname>://$
<username>@<hostname>://$ pwd
//

列出目录的内容显示与/相同。

那么cd // 到底是做什么的,与cd / 有什么区别?

【问题讨论】:

  • 没有区别。试试“//////////”,也可以。
  • "//////////" 有效,但我得到一个不同的提示,只有一个'/'。
  • 属于 Linux 栈,这里明显跑题了。
  • 内置的 bash pwd 命令会记住您给它的字符串(但在某些情况下会对其进行规范化)。 /bin/pwd 从当前目录的位置推断完整路径,根据需要遍历 .. 链接,并将仅打印 /

标签: linux bash shell directory-structure cd


【解决方案1】:

其实没什么意思,被忽略了。

来自Bash FAQ E10:

E10) 为什么 'cd //' 将 $PWD 保留为 '//'?

POSIX.2 在其对“cd”的描述中表示三个或更多前导 在规范化 当前工作目录。

我认为这是为了历史兼容性。某些版本的 Unix 和早期的网络文件系统,使用的路径形式为 //主机名/路径访问服务器“主机名”上的“路径”。

还有Unix standards 状态:

可以解释以两个连续斜杠开头的路径名 以实现定义的方式,尽管有两个以上的前导 斜线应被视为单个斜线。

【讨论】:

    【解决方案2】:

    AskUbuntu 上的 answer 确认它们是同一个目录。此外,它还有益地引用了POSIX Pathname Resolution specification

    由单斜杠组成的路径名应解析为进程的根目录。不应成功解析空路径名。以两个连续斜杠开头的路径名可以以实现定义的方式解释,但两个以上的前导斜杠应被视为单个斜杠。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-18
      • 2015-02-02
      • 2014-07-15
      • 1970-01-01
      • 2022-11-01
      • 1970-01-01
      • 2013-10-24
      • 2016-04-06
      相关资源
      最近更新 更多