Existe-t-il un moyen simple d'imprimer le chemin complet de file.txt
?
file.txt = /nfs/an/disks/jj/home/dir/file.txt
En <command>
dir> <command> file.txt
doit imprimer
/nfs/an/disks/jj/home/dir/file.txt
Existe-t-il un moyen simple d'imprimer le chemin complet de file.txt
?
file.txt = /nfs/an/disks/jj/home/dir/file.txt
En <command>
dir> <command> file.txt
doit imprimer
/nfs/an/disks/jj/home/dir/file.txt
Utilisation lien de lecture :
readlink -f file.txt
Je suppose que cela ne fonctionne que pour les liens symboliques.<br>Utilisation : readlink FICHIER Si FICHIER existe et est un lien symbolique, afficher le contenu du lien et quitter avec succès. Sinon, il n'affiche rien et échoue. --help affiche cette aide et quitte --version affiche les informations sur la version et quitte
Sur mas osx il retourne que -f est illégal et a proposé d'utiliser -n à la place mais n'a rien retourné.
Bonjour. J'ai trouvé cette réponse qui correspond le mieux à mon besoin. Comment puis-je utiliser une variable locale au lieu d'un paramètre de ligne de commande (c'est-à-dire $1) ?
LOCAL_VARIABLE="filename.txt" && echo $(cd $(dirname "$LOCAL_VARIABLE") && pwd -P)/$(basename "$LOCAL_VARIABLE")
@SopalajodeArrierez Parce que readlink
ne fonctionne pas si le fichier est un lien symbolique, il vous montrera la cible du lien symbolique au lieu du lien lui-même.
Dans un scénario similaire, je lance un cshell script à partir d'un autre endroit. 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 de la façon dont le script a été exécuté.
Par exemple, si le script était lancé comme ceci : $> ../../test/test.csh
, $script_dir
contiendra /home/abc/sandbox/v1/../../test
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.