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


¿Hay alguna manera fácil de imprimir el camino completo de file.txt ?

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

los <command> 

dir> <command> file.txt  

debería imprimir

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

523
2018-03-10 20:45


origen


Respuestas:


Utilizar readlink:

readlink -f file.txt

837
2018-03-10 20:52



Supongo que estás usando Linux.

Encontré una utilidad llamada realpath en coreutils 8.15.

realpath realpath
/data/ail_data/transformed_binaries/coreutils/test_folder_realpath/realpath

129
2017-11-04 03:24



Lo siguiente generalmente hace el truco:

 echo $(cd $(dirname "$1") && pwd -P)/$(basename "$1")

64
2018-03-10 21:01



yo saber hay una forma más fácil de hacerlo, pero zurcido si puedo encontrarlo ...

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

24
2018-03-10 20:57



find $PWD -type f | grep "filename"

o

find $PWD -type f -name "*filename*"

16
2017-07-01 06:08



Si está en el mismo directorio que el archivo:

ls "`pwd`/file.txt"

Reemplazar file.txt con su nombre de archivo de destino.


6
2018-03-14 00:43



Podrías usar el fpn (nombre de ruta completo) guión:

% pwd
/Users/adamatan/bins/scripts/fpn

% ls
LICENSE   README.md fpn.py

% fpn *
/Users/adamatan/bins/scripts/fpn/LICENSE
/Users/adamatan/bins/scripts/fpn/README.md
/Users/adamatan/bins/scripts/fpn/fpn.py

fpn no es un paquete estándar de Linux, pero es un proyecto github gratuito y abierto y tu podría configurarlo en un minuto.


2
2017-12-11 12:46



Sé que esta es una vieja pregunta ahora, pero solo para agregar a la información aquí:

El comando Linux which se puede usar para encontrar la ruta de archivo de un archivo de comando, es decir

$ which ls
/bin/ls

Hay algunas advertencias sobre esto; por favor mira https://www.cyberciti.biz/faq/how-do-i-find-the-path-to-a-command-file/.


2
2017-12-21 10:55



En un escenario similar, estoy lanzando un script cshell desde otra ubicación. Para establecer la ruta absoluta correcta de la secuencia de comandos para que se ejecute solo en el directorio designado, estoy usando el siguiente código:

set script_dir = `pwd`/`dirname $0`

$0 almacena la cadena exacta de cómo se ejecutó el script.

Por ej. si el script se inició así: $> ../../test/test.csh, $script_dir contendrá /home/abc/sandbox/v1/../../test


1
2017-12-19 06:16