getting absolute path of a file in csh?
Joshua Pollak
josh at offthehill.org
Tue Aug 8 14:05:59 EDT 2006
Tom Metro wrote:
> Robert La Ferla wrote:
>> In a csh script, how do you get the absolute path of a filename?
>> If the cwd is "/users/myacct" and there is a file called
>> "filename.dat", I want a command (built-in or external) that given
>> the argument "filename.dat", returns "/users/myacct/filename.dat".
>
> set file="filename.dat"
> echo "$cwd/$file:t"
I use this code (in bash, sorry), to resolve the true path and name of a
referenced file. The while loop unwinds symbolic links to make sure we
are referring to the true file. (Modified code courtesy of the Tomcat
catalina startup script.) Maybe someone could translate to CSH?
# resolve links - $0 may be a softlink
PRG="$0"
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '.*/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
PRGDIR=`dirname "$PRG"`
PROGNAME=`basename "$PRG"`
More information about the Discuss
mailing list