getting absolute path of a file in csh?

Joshua Pollak josh at
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

while [ -h "$PRG" ] ; do
  ls=`ls -ld "$PRG"`
  link=`expr "$ls" : '.*-> \(.*\)$'`
  if expr "$link" : '.*/.*' > /dev/null; then
    PRG=`dirname "$PRG"`/"$link"

PRGDIR=`dirname "$PRG"`
PROGNAME=`basename "$PRG"`

More information about the Discuss mailing list