La sortie Realpath inclut l'entrée


9

J'utilise la realpathcommande, mais elle ajoute toujours l'entrée d'origine à la fin du chemin:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl

Vous demandez un répertoire dans votre répertoire de travail actuel. Essayez ceci à la place:realpath .
penguin359

Réponses:


17

Vous avez donné realpathun chemin relatif, vers un fichier dans le répertoire courant.

Le fichier (qui peut être un répertoire) peut ou non exister. realpathne se soucie pas par défaut. Il signale le chemin d'accès, que son dernier élément existe ou non.

Si vous souhaitez qu'il ne signale que les chemins d'accès existants, utilisez l' -eindicateur:

zanna@toaster:~/playground$ realpath playground
/home/zanna/playground/playground
zanna@toaster:~/playground$ realpath ~/playground
/home/zanna/playground
zanna@toaster:~/playground$ realpath -e playground
realpath: playground: No such file or directory

12

C'est parce que vous lui donnez un chemin qui n'existe pas, donc il affiche simplement le répertoire courant et tout ce que vous lui avez donné, en supposant que ce serait le chemin. Notez que la page de manuel spécifie que:

Imprimez le nom de fichier absolu résolu; tous sauf le dernier composant doivent exister

Il permet donc l'exécution avec une cible inexistante. Pour illustrer, considérons ces exemples:

$ pwd
/home
$ ls
lost+found  terdon
$ realpath terdon
/home/terdon
$ realpath nonExistentDir
/home/nonExistentDir

Ou, pour reproduire ce que vous avez fait:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon

5

Non, il vous indique uniquement que le chemin d'accès au fichier (probablement inexistant) yosefklsitué dans le répertoire courant ( /homes/yosefkl) est /homes/yosefkl/yosefkl. Essayer

realpath "$PWD"
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.