J'utilise la realpath
commande, mais elle ajoute toujours l'entrée d'origine à la fin du chemin:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
J'utilise la realpath
commande, mais elle ajoute toujours l'entrée d'origine à la fin du chemin:
$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Réponses:
Vous avez donné realpath
un chemin relatif, vers un fichier dans le répertoire courant.
Le fichier (qui peut être un répertoire) peut ou non exister. realpath
ne 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' -e
indicateur:
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
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
realpath .