//在路径中是什么意思?
我正在我的终端工作,当我拼错而cd
到root( /
)。 无意中,我输入了//
我进入了终端:
root@weblocalhost://#
当我输入pwd
,我得到了响应//
但是当我输入ls -s
我得到与/
目录中相同的列表。
当你输入2以上时,即///
你得到:
root@weblocalhost:/#
总是1 /
除了2.是否有任何差异和//
是什么?
/
相当于//
从POSIX规范 (重点添加):
3.267路径名
用于标识文件的字符串。 在POSIX.1-2008的上下文中,路径名可以限制为{PATH_MAX}个字节,包括终止空字节。 它有可选的开始
字符,后跟零个或多个由
字符分隔的文件名。 路径名可以选择包含一个或多个尾随的
字符。 多个连续的
字符被认为与一个
相同,除了正好两个前导
字符的情况。
而且 :
4.12路径名解析
…
由单个组成的路径
解析为进程的根目录。 无法成功解析空路径名。 如果路径名以两个连续的
字符开头,则前导
字符后面的第一个组件可以按实现定义的方式解释,但是应将两个以上的前导
字符视为单个
字符。
有关exception(cygwin和目录)的讨论,请参阅: linux如何处理多个连续路径分隔符(/ home ////用户名///文件)?
您可以向目录添加多个斜杠,它不会更改任何内容。
例如,这三个命令都是一样的:
cd /home
cd /home/
cd /home//
在我们当前的工作目录中的任何一个被设置为/ home(用pwd
检查)之后。
我猜你已经将你的提示配置为做一些聪明的事情并且你遇到了意想不到的行为。 当你echo $PS1
时你会得到什么?
链接到 https://unix.stackexchange.com/ 上的评论 ,可以解释它。