Ich würde gerne verstehen, was der vollständige Pfadname wirklich bedeutet. Ich habe eine Datei mit dem Namen my_script in meinem Ausgangsverzeichnis. Ich nahm an, dass der vollständige Pfadname ./my_script ist, was bedeutet, dass er sich im Stammordner befindet, aber ich bin nicht sicher. Kann mich bitte jemand aufklären?
command-line
paths
Sosytee
quelle
quelle
Antworten:
Nein, deine Annahme ist falsch. Der vollständige Pfadname für
my_script
Datei aus Ihrem Home - Verzeichnis ist:/home/your_user_name/my_script
. Wenn Sie./my_script
Terminal eingeben, versuchen Sie tatsächlich, das Skript auszuführen (sofern es ausführbar ist), und es wird nur ausgeführt, wenn es sich um Ihr aktuelles Arbeitsverzeichnis handelt/home/your_user_name/
. Um das Skript auszuführen, können Sie auch den vollständigen Dateipfad verwenden, der wie gesagt ist/home/your_user_name/my_script
.Es wird angenommen, dass ein UNIX-Pfadname wie Internetadressen aussieht und sich anfühlt, was zu Kompatibilität führt. Den vollständigen Pfadnamen des aktuellen Arbeitsverzeichnisses finden Sie im Terminal mit dem folgenden Befehl:
Um den vollständigen Pfad für Ihr Benutzer-Ausgangsverzeichnis herauszufinden, können Sie Folgendes verwenden:
Die obigen drei Befehle sind äquivalent.
Um den vollständigen Pfadnamen für eine Datei herauszufinden, können Sie den
readlink
Befehl verwenden. Zum Beispiel in Ihrem Fall:quelle
readlink
enthüllt den aktuellen Pfad von SoftlinksVollständiger Pfadname bedeutet wirklich den vollständigen Pfad zu dieser Datei oder diesem Ordner aus dem
/
Verzeichnis des Dateisystems .Der vollständige Pfad zu Ihrem Skript lautet beispielsweise:
Oder der vollständige Pfadname zur
grep
ausführbaren Datei lautetWie für die
./my_script
das Symbol.
steht für das aktuelle Verzeichnis, so dass Sie actuallly sagen : „Sehen Sie unter dem aktuellen Verzeichnis nach einer Datei oder dem Namen my_script Ordnern“quelle
Um den vollständigen Pfad zu verstehen, müssen Sie zuerst den Ausgangspunkt kennen.
Das Stammverzeichnis
/
ist der Ausgangspunkt für * nix-basierte Betriebssysteme. Es enthält alle anderen Verzeichnisse sowohl des Systems als auch des Benutzers.Das Basisverzeichnis des Benutzers
/home/USERNAME/
oder~/
kurz: Enthält die Dateien und Verzeichnisse des Benutzers. Zum Beispiel Bilder, Musik, Dokumente usw. Auf jedes dieser Verzeichnisse wird verwiesen, wie/home/USERNAME/DIRECTORY
zum Beispiel Dokumente unter/home/USERNAME/Documents
.Wie bei Verzeichnissen werden Dateien auf die gleiche Weise referenziert. Beispielsweise kann auf eine Datei mit dem Namen, die
my_script
sich im Ausgangsverzeichnis des Benutzerssosytee
befindet, unter Verwendung des vollständigen Pfads/home/sosytee/my_script
oder~/my_script
kurz referenziert werden .Sowohl Dateien als auch Verzeichnisse können von überall im System mit ihren vollständigen Pfaden referenziert bzw. darauf zugegriffen werden. Außerdem kann man nur mit ihrem Namen darauf zugreifen, wenn sie sich im selben Verzeichnis befinden. Befindet sich der Benutzer beispielsweise bei der
~/
Verwendung des Terminals, kann ermy_script
mit nur auf die Datei zugreifenmy_script
.Zusätzlich kann auf Verzeichnisse und Dateien nur mit ihrem Namen zugegriffen werden, wenn sie in seiner PATH-Variablen platziert sind. Sie können sehen, was in PATH gespeichert ist, indem Sie verwenden
echo $PATH
.Einfache Beispiele für den Zugriff auf Dateien über die Befehlszeile:
/home/USERNAME/
und möchte dencat
Befehl für eine Datei mit dem/home/USERNAME/Documents
Namen foo.txt verwenden:cat Documents/foo.txt
Der Benutzer befindet sich in
~/Documents
und möchte ein Skript mit dem Namenfoo.sh
located ad ausführen~/Scripts/Foo
:sh ../Scripts/Foo/foo.sh
oder
sh ~/Scripts/Foo/foo.sh
Dies ist auf jeden Fall nur eine Zusammenfassung.
Weitere Informationen
Bash Guide für Anfänger , von Machtelt Garrels
Mehr über PATH hier
Informationen zur Unix-Verzeichnisstruktur
quelle
Der vollständige Pfadname ist der Pfad aus dem Stammverzeichnis (dh
/
)../my_script
ist der relative Pfadname, da der Pfad relativ zum aktuellen Verzeichnis angegeben wird, das mit gekennzeichnet ist.
. Wenn Sie sich also in Ihrem Home-Verzeichnis befinden, ist der vollständige Pfad an erster Stelle. wie/home/sosytee/my_script
. Für Ihr Home-Verzeichnis gibt es die Abkürzung~
, dh Sie können auch schreiben~/my_script
. Aber das wird sich natürlich für jeden Benutzer in einen anderen Pfad auflösen.Um den vollständigen Pfad Ihres aktuellen Telefonbuchaufrufs anzuzeigen
pwd
.quelle
Nein ist es nicht. Dieser Weg ist relativ. Der Punkt am Anfang gibt das aktuelle Verzeichnis an:
Wie Sie sehen, habe ich das Verzeichnis geändert und das wurde
my_script
nicht gefunden, was bedeutet, dass dies./my_script
kein absoluter Pfad ist.Aus der Wikipedia :
Da die
./my_script
Bedingung nicht erfüllt ist, dass ich diemy_script
Datei immer dann finden kann , wenn ich es bin , sollten wir schließen, dass es sich um einen relativen Pfad handelt.quelle
Hier ... ich nehme an, Sie fragen, weil Sie Ubuntu-Server unter Windows installiert haben ...
Kopieren Sie diesen Code in Ihren Ordner-Explorer unter Windows
%userprofile%\AppData\Local\Packages
Das wird Ihnen den Heimatort zeigen ... es ist irgendwo auf Ihrem System versteckt
Doppelklicken Sie in diesem Ordner auf den Ordner für die Linux-Distribution, deren Dateien Sie anzeigen möchten:
Die Namen dieser Ordner können sich in Zukunft geringfügig ändern. Suchen Sie einfach nach einem Ordner, der nach der Linux-Distribution benannt ist.
Ihr Zuhause wird unter sein
LocalState\rootfs\home
Die meisten dieser Informationen stammen aus Zugriff auf Ihre Ubuntu-Bash-Dateien in Windows (und Ihr Windows-Systemlaufwerk in Bash).
quelle