我看到一些shell脚本将cd
放入一些以别名开始的文件路径中,并具有/../../在两者之间,例如:$exampleroot/../../folder/subfolder/filename.zip
我明白/…/表示根路径,但是/…/…/参考?这是否意味着无论文件夹名称如何,都要捕获中间的所有杂项子文件夹?
感谢下面的例子可能会有所帮助。假设$exampleroot
是/one/two/three/four
(这是一个目录)。然后:
$exampleroot/..
等价于/one/two/three
$exampleroot/../../folder
is/one/two/folder
$exampleroot/../../folder/subfolder/filename.zip
is/one/two/folder/subfolder/filename.zip
$exampleroot/../..
is/one/two
(注意:如果/one/two/three/four
不是目录,则/one/two/three/four/..
不是有效路径。如果路径中有像符号链接这样的东西,会有一些奇怪的例外,因为在目录层次结构中上升一级与取消符号链接是不一样的。
..
表示父目录,即包含$exampleroot
的目录。因此,../../
是两级以上:
$ pwd
/tmp
$ mkdir -pv foo/bar
mkdir: created directory 'foo/bar'
$ cd foo/bar/
$ pwd
/tmp/foo/bar
$ cd ../..
$ pwd
/tmp