我不确定这些路径是否重复。给定相对路径,如何使用 shell 脚本确定绝对路径?
示例:
relative path: /x/y/../../a/b/z/../c/d
absolute path: /a/b/c/d
最佳答案
我在unix中遇到的最可靠的方法是readlink -f
:
$ readlink -f /x/y/../../a/b/z/../c/d
/a/b/c/d
一些注意事项:
- 这还有解析所有符号链接(symbolic link)的副作用。这可能是理想的,也可能不是,但通常是理想的。 如果您引用不存在的目录,
readlink
将给出空白结果。如果您想支持不存在的路径,请改用readlink -m
。不幸的是,2005 年之前发布的 readlink 版本中不存在此选项。
关于perl - 将相对路径转换为绝对路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4045253/