¿Cómo obtener la ruta completa de un archivo?

Resuelto Jean asked hace 13 años • 36 respuestas

¿ Existe alguna forma sencilla de imprimir la ruta completa de file.txt?

file.txt = /nfs/an/disks/jj/home/dir/file.txt

El<command>

dir> <command> file.txt  

debería imprimir

/nfs/an/disks/jj/home/dir/file.txt
Jean avatar Mar 11 '11 03:03 Jean
Aceptado

Utilice el enlace de lectura :

readlink -f file.txt
filmor avatar Mar 10 '2011 20:03 filmor

Supongo que estás usando Linux.

Encontré una utilidad llamada realpathcoreutils 8.15.

realpath -s file.txt
/data/ail_data/transformed_binaries/coreutils/test_folder_realpath/file.txt

Dado que la pregunta es sobre cómo obtener la ruta completa/absoluta de un archivo y no sobre cómo obtener el destino de los enlaces simbólicos , utilice -so --no-symlinksque significa no expandir los enlaces simbólicos.

Según los comentarios de @styrofoam-fly y @arch-standton, realpathpor sí solo no verifica la existencia del archivo, para resolver esto agregue el eargumento:realpath -e file

lllllllllllll avatar Nov 04 '2014 03:11 lllllllllllll

Lo siguiente suele funcionar:

 echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")"
ZeRemz avatar Mar 10 '2011 21:03 ZeRemz

que hay una manera más fácil de hacerlo, pero maldita sea si puedo encontrarla...

jcomeau@intrepid:~$ python -c 'import os; print(os.path.abspath("cat.wav"))'
/home/jcomeau/cat.wav

jcomeau@intrepid:~$ ls $PWD/cat.wav
/home/jcomeau/cat.wav
jcomeau_ictx avatar Mar 10 '2011 20:03 jcomeau_ictx