shell脚本中的相对路径名是相对于哪个路径的?

shell脚本中的相对路径名是相对于哪个路径的?

如果bash脚本包含相对路径(指定文件、目录……),则该路径是相对于的相对路径,

  • bash 脚本的父目录的路径名,或者
  • 我们运行 bash 脚本的当前目录?

如果我可以问,类似的问题在Python脚本中、在Java程序中、在C程序中、在C++程序中......有相同的答案吗?

谢谢。

我没有看到与链接的问题有任何相似之处。我问的是程序中的相对路径是相对于什么的。

答案1

父目录是包含项目的目录:

  • 对于文件,其父文件的路径是.,因为那是文件所在的位置。文件本身是./file.
  • 对于目录,父目录..就是.目录本身。

这是 Linux 的通用表示法,并得到广泛认可。理论上,某些语言可能会使用不同的表示法,但我无法给出示例。

这是使用绝对路径的示例,您可以轻松地通过大脑的力量从中推导出相对路径。

$ echo 'readlink -f "$0"' > script
$ ln -s script link
$ chmod +x script
$ ./script 
/home/tomas/x/script
$ ./link 
/home/tomas/x/script
$ readlink -f .
/home/tomas/x
$ readlink -f ..
/home/tomas

相关内容