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
Josef Klimuk
la source
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
Zanna
la source
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
terdon
la source
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"
choroba
la source