不小心我最后输入了 dir /..
,需要意识到这些路径之间的真正区别:
$ command ../dir
$ command dir/..
他们做两件不同的事情,使用相同的..
同样,它适用于:
$ ls ~/..
列出 $HOME 的一个目录,也许如果我也使用 $VARIABLE/..。
还有什么可能?在 Linux 世界的道路上。
我正在专门谈论这个..
, ./
, .
, ../
, 或者/..
,如果有任何其他类似的符号,一个我不知道的符号,或者以更好的方式使用它的高级方式或技巧,不常见
如果他们有专有名称,请分享。
如果没有其他的,答案应该是“没有”
路径是从左到右解析的,所以
../dir
表示先上然后再到dir
;dir/..
表示 go todir
then go up,与pwd
or相同$PWD
。基本上任何与相对路径相关的东西。
编辑:
.
是表示当前目录的符号,如果要运行 bash 文件也可以表示源,..
是表示上层目录的符号,../
../
是两个符号明确表示当前目录,不像前者那样运行bash,/..
是两个符号表示去根目录的上层目录,这将返回root。任何其他符号...
....
都可能是别名。可以使用
directory actions on Linux
或之类的关键字找到更多信息folder actions for Linux
。..
所以,../
或没有特殊处理/..
。../
不是一个单一的令牌。它是..
(父目录)后跟/
(目录分隔符)。同样,/..
也是两个令牌。..
只是一个目录名,和其他目录名一样,除了它引导目录树而不是向下。shell 理解cd ../dir
的方式与它理解的方式完全相同cd foo/bar
:它是[directory1]/[directory2]
.