Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
当用户不是直接执行文件而是通过软链接执行文件时,如何找到正在执行的原始文件的完整路径。更准确地说,假设我有/original/path/a.sh, 和该文件的软链接:~/Desktop/link-to-a.sh. 如果用户实际执行,我如何找到"/original/path/"内部?a.sh~/Desktop/link-to-a.sh
/original/path/a.sh
~/Desktop/link-to-a.sh
"/original/path/"
a.sh
以下变量包含 ~/Desktop/ ,这没有用。
DIR="$( cd "$( dirname "$0" )" && pwd )"
使用readlink.
readlink
要获取包含脚本的软链接目录的真实路径:
DIR=`dirname $0` DIR=`readlink -f $DIR`
如果您的软链接直接指向脚本,而不是其目录,请执行此操作以获取包含脚本的真实目录:
FILE=`readlink -f $0` DIR=`dirname $FILE`