我一直在使用类似以下的命令来获取特定脚本的执行目录,无论该脚本是从何处执行的:
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] 删除。
我来说两句