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 に答える