¿Cómo obtener la ruta completa de un archivo?
¿ 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
Aceptado
Utilice el enlace de lectura :
readlink -f file.txt
Supongo que estás usando Linux.
Encontré una utilidad llamada realpath
coreutils 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 -s
o --no-symlinks
que significa no expandir los enlaces simbólicos.
Según los comentarios de @styrofoam-fly y @arch-standton, realpath
por sí solo no verifica la existencia del archivo, para resolver esto agregue el e
argumento:realpath -e file
Lo siguiente suele funcionar:
echo "$(cd "$(dirname "$1")" && pwd -P)/$(basename "$1")"
Sé 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