cd根(/)拼写错误时,我正在终端中工作。偶然,我打了个电话//,进入了终端:
root@weblocalhost://#
当我键入时pwd,我会得到响应,//但是当我键入时,我会ls -s得到与/目录中相同的列表。
当您键入大于2时,即///得到:
root@weblocalhost:/#
/除2之外,总是1。有什么区别//吗?
cd根(/)拼写错误时,我正在终端中工作。偶然,我打了个电话//,进入了终端:
root@weblocalhost://#
当我键入时pwd,我会得到响应,//但是当我键入时,我会ls -s得到与/目录中相同的列表。
当您键入大于2时,即///得到:
root@weblocalhost:/#
/除2之外,总是1。有什么区别//吗?
Answers:
/ 相当于 //
从POSIX规范(添加了重点):
3.267路径名
用于标识文件的字符串。在POSIX.1-2008的上下文中,路径名可以限制为{PATH_MAX}个字节,包括终止的空字节。它具有可选的起始
<slash>字符,后跟零个或多个以<slash>字符分隔的文件名。路径名可以选择包含一个或多个结尾<slash>字符。多个连续的<slash>字符被认为与一个相同<slash>,除了恰好两个前导<slash>字符的情况外。
和:
4.12路径名解析
...
由单个组成的路径名<slash>应解析为进程的根目录。空路径名将无法成功解析。如果路径名以两个连续的<slash>字符开头<slash>,则尽管<slash>可以将两个以上的前导字符视为一个<slash>字符,但可以以实现定义的方式来解释前导字符之后的第一个组件。
有关异常(cygwin和目录)的详细讨论,请参见:linux如何处理多个连续的路径分隔符(/ home ///// username //// file)?
您可以在目录中添加多个斜杠,并且不会改变任何内容。
例如,这三个命令都执行相同的操作:
cd /home
cd /home/
cd /home//
在完成所有这些操作之后,我当前的工作目录将设置为/ home(使用进行检查pwd)。
我猜您已将您的提示配置为执行某些智能操作,并且遇到了意外行为。你什么时候会得到什么echo $PS1?