计算相对于另一个路径的目录路径,计算出的路径为绝对形式

时间:2012-03-09 13:43:16

标签: bash

我有一个应用程序的目录结构:bin,config,lib。

在bin目录中,我有一个bash脚本。我希望能够根据bin目录中脚本文件的位置在bash脚本中为config和lib目录设置变量。我可以通过执行以下操作获取正在执行的脚本的目录名称:

BIN_DIR =“$(cd -P”$(dirname“$ {BASH_SOURCE [0]}”)“&& pwd)”

我的问题是:如何根据BIN_DIR计算config和lib目录的行为路径?

感谢。

2 个答案:

答案 0 :(得分:3)

您可以使用它:

cd `dirname $0`/..
BASE_DIR=`pwd`
cd -
BIN_DIR=${BASE_DIR}/bin
CONFIG_DIR=${BASE_DIR}/config
LIB_DIR=${BASE_DIR}/lib

答案 1 :(得分:2)

如果您有BIN_DIR,那么您将获得项目目录的绝对路径:

PROJECT_DIR=`readlink -f $BIN_DIR/..`

然后

CONFIG_DIR=$PROJECT_DIR/config
LIB_DIR=$PROJECT_DIR/lib