位于文件路径中的 ../../ 是什么意思?

What does ../../ located within a file path means?

我看到一些 shell 脚本 cd 进入某个以别名开头并在其间有 /../../ 的文件路径,例如: $exampleroot/../../folder/subfolder/filename.zip

我知道 /../ 表示根路径,但是这个 /../../ 指的是什么?这是否意味着无论文件夹名称如何,都捕获其间的所有 misc 子文件夹?

谢谢

.. 表示父目录,即包含 $exampleroot 的目录。 ../../ 因此向上两级:

$ pwd
/tmp
$ mkdir -pv foo/bar
mkdir: created directory 'foo/bar'
$ cd foo/bar/
$ pwd
/tmp/foo/bar
$ cd ../..
$ pwd
/tmp

举个例子可能会有帮助。假设 $exampleroot/one/two/three/four(这是一个目录)。那么:

  • $exampleroot/.. 等同于 /one/two/three
  • $exampleroot/../../one/two
  • $exampleroot/../../folder/one/two/folder
  • $exampleroot/../../folder/subfolder/filename.zip/one/two/folder/subfolder/filename.zip

(注意:如果 /one/two/three/four 不是目录,那么 /one/two/three/four/.. 不是有效路径。如果在路径,因为在目录层次结构中上升一级与 un-following 符号 link 不同。)