Die Realpath-Ausgabe enthält die Eingabe

9

Ich benutze den realpathBefehl, aber er fügt immer die ursprüngliche Eingabe am Ende des Pfades hinzu:

$ pwd
/homes/yosefkl
$ realpath yosefkl
/homes/yosefkl/yosefkl
Josef Klimuk
quelle
Sie fragen nach einem Verzeichnis in Ihrem aktuellen Arbeitsverzeichnis. Versuchen Sie dies stattdessen:realpath .
Pinguin359

Antworten:

17

Sie haben realpatheinen relativen Pfad zu einer Datei im aktuellen Verzeichnis angegeben.

Die Datei (die ein Verzeichnis sein kann) kann vorhanden sein oder nicht. realpathist standardmäßig egal. Es meldet den Pfad unabhängig davon, ob sein letztes Element vorhanden ist.

Wenn Sie möchten, dass nur vorhandene Pfade gemeldet werden, verwenden Sie das -eFlag:

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
quelle
12

Das liegt daran, dass Sie ihm einen Pfad geben, der nicht existiert, und einfach das aktuelle Verzeichnis und alles, was Sie ihm gegeben haben, ausdrucken, vorausgesetzt, dies wäre der Pfad. Beachten Sie, dass die Manpage Folgendes angibt:

Drucken Sie den aufgelösten absoluten Dateinamen. Alle bis auf die letzte Komponente müssen vorhanden sein

Dies ermöglicht die Ausführung mit einem nicht vorhandenen Ziel. Betrachten Sie zur Veranschaulichung die folgenden Beispiele:

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

Oder um zu duplizieren, was Sie getan haben:

$ pwd
/home/terdon
$ realpath terdon
/home/terdon/terdon
Terdon
quelle
5

Nein, es wird nur angezeigt, dass der Pfad zu der (wahrscheinlich nicht vorhandenen) Datei yosefklim aktuellen Verzeichnis ( /homes/yosefkl) lautet /homes/yosefkl/yosefkl. Versuchen

realpath "$PWD"
Choroba
quelle