Question Comment obtenir le chemin complet d'un fichier?


Y a-t-il un moyen facile d'imprimer le chemin complet de file.txt ?

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

le <command> 

dir> <command> file.txt  

devrait imprimer

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

523
2018-03-10 20:45


origine


Réponses:


Utilisation lien de lecture:

readlink -f file.txt

837
2018-03-10 20:52



Je suppose que vous utilisez Linux.

J'ai trouvé un utilitaire appelé realpath dans les coreutils 8.15.

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

129
2017-11-04 03:24



Ce qui suit fait habituellement l'affaire:

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

64
2018-03-10 21:01



je connaître il y a un moyen plus facile que cela, mais sacrément si je peux le trouver ...

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"

ou

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

16
2017-07-01 06:08



Si vous êtes dans le même répertoire que le fichier:

ls "`pwd`/file.txt"

Remplacer file.txt avec votre nom de fichier cible.


6
2018-03-14 00:43



Vous pouvez utiliser le fpn (nom du chemin d'accès complet) scénario:

% 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 n'est pas un paquet Linux standard, mais c'est un projet github gratuit et ouvert et toi pourrait le mettre en place dans une minute.


2
2017-12-11 12:46



Je sais que c'est une vieille question maintenant, mais juste pour ajouter à l'information ici:

La commande Linux which peut être utilisé pour trouver le chemin de fichier d'un fichier de commande, c'est-à-dire

$ which ls
/bin/ls

Il y a quelques réserves à cela; s'il te plait regarde https://www.cyberciti.biz/faq/how-do-i-find-the-path-to-a-command-file/.


2
2017-12-21 10:55



Dans un scénario similaire, je lance un script cshell depuis un autre emplacement. Pour définir le chemin absolu correct du script afin qu'il s'exécute uniquement dans le répertoire désigné, j'utilise le code suivant:

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

$0 stocke la chaîne exacte comment le script a été exécuté.

Par exemple si le script a été lancé comme ceci: $> ../../test/test.csh, $script_dir contiendra /home/abc/sandbox/v1/../../test


1
2017-12-19 06:16