从bash脚本获取相对路径的规范值

戴夫

我一直在使用类似以下的命令来获取特定脚本的执行目录,无论该脚本是从何处执行的:

MYDIR=$(dirname $(readlink -f $0))

要获得位于脚本目录上方两个父级的目录的规范路径,哪一个类似的衬板是什么?我已经尝试过类似的事情:

MYDIR=$(dirname $(readlink -f $0/../..))
MYDIR=$(readlink -f $(dirname $(readlink -f $0)/../..))

正如您所知道的,我不是bash专家。我该怎么做?

用户名

您需要付出/../..最后的代价readlink,而不是dirname

$(readlink -f "$(dirname "$(readlink -f "$0")")/../..")

您的脚本将导致dirname path/to/script/../..执行,并输出“ path/to/script/..”,该脚本readlink拒绝规范化,因为诸如此类的构造file/..在Linux中是无效的,并且该-f选项要求所有组件都存在。readlink -m将起作用,因为它不检查是否存在任何路径组件。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章