/(正斜杠)在 cd 中是什么意思?

max*_*max 1 linux bash centos-6

我使用以下命令来更改目录,它通常工作正常。

[max@localhost max]$ cd /
[max@localhost /]$ cd /home/max/
[max@localhost max]$ pwd
/home/max
Run Code Online (Sandbox Code Playgroud)

但是今天,我错误地输入了两个//而不是一个/,令我惊讶的是,它也有效。因此,我尝试了各种示例,并且所有示例都可以正常工作而不会出现任何错误。

[max@localhost /]$ cd /home///////////////max/////////////////////
[max@localhost max]$ pwd
/home/max
[max@localhost max]$ cd /
[max@localhost /]$ cd /////////////////home/max///////////
[max@localhost max]$ pwd
/home/max
Run Code Online (Sandbox Code Playgroud)

这些正斜杠(////////)是什么意思,它们的作用和代表什么?

ken*_*orb 6

它由IEEE 标准定义:

路径名可以选择包含一个或多个尾部斜杠。多个连续的斜线被认为与一个斜线相同。

实际上有一个类似的问题,并且在那里描述了解决方案:How Linux handles multiple path separators

  • 它允许您避免测试前导或尾随斜杠,从而简化了组合路径。您可以只执行 `path1 + "/" + path2`,无论 `path1` 是否有斜杠和/或 `path2` 是否有前导斜杠,它都会起作用。 (2认同)