2

当用户不是直接执行文件而是通过软链接执行文件时,如何找到正在执行的原始文件的完整路径。更准确地说,假设我有/original/path/a.sh, 和该文件的软链接:~/Desktop/link-to-a.sh. 如果用户实际执行,我如何找到"/original/path/"内部?a.sh~/Desktop/link-to-a.sh

以下变量包含 ~/Desktop/ ,这没有用。

DIR="$( cd "$( dirname "$0" )" && pwd )"
4

1 回答 1

3

使用readlink.

要获取包含脚本的软链接目录的真实路径:

DIR=`dirname $0`
DIR=`readlink -f $DIR`

如果您的软链接直接指向脚本,而不是其目录,请执行此操作以获取包含脚本的真实目录:

FILE=`readlink -f $0`
DIR=`dirname $FILE`
于 2012-07-19T14:18:30.603 回答