Boston Linux & Unix (BLU) Home | Calendar | Mail Lists | List Archives | Desktop SIG | Hardware Hacking SIG
Wiki | Flickr | PicasaWeb | Video | Maps & Directions | Installfests | Keysignings
Linux Cafe | Meeting Notes | Blog | Linux Links | Bling | About BLU

BLU Discuss list archive


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

getting absolute path of a file in csh?



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"`






BLU is a member of BostonUserGroups
BLU is a member of BostonUserGroups
We also thank MIT for the use of their facilities.

Valid HTML 4.01! Valid CSS!



Boston Linux & Unix / webmaster@blu.org