From: Richard E. <rem...@ed...> - 2003-04-21 19:23:33
|
The following shell function converts all of the symbolic links in a path into their "real" directories: # # remove all links # resolve_path() { declare path=$1 declare l=`echo $path | sed -e 's;/; ;g'` declare rpath= for c in $l; do rpath=$rpath/$c while [ -h "$rpath" ] ; do ls=`ls -ld "$rpath"` link=`expr "$ls" : '.*-> \(.*\)$'` if expr "$link" : '/.*' > /dev/null; then rpath="$link" else rpath=`dirname "$rpath"`"/$link" fi done done echo $rpath } # ant is a symbolic link path=/home/emberson/java/jakarta/ant/lib echo $path path=`resolve_path $path` echo $path # this echos "/home/emberson/java/jakarta/apache-ant-1.5.3-1/lib" Richard |