/Users/lukas
ist ein "absoluter" Weg. Das führende steht /
für das Stammverzeichnis Ihres Dateisystems.
lukas
ist ein "relativer" Pfad. Da es nicht an der Wurzel verankert ist, bedeutet es "im aktuellen Verzeichnis suchen ". Dies schlägt fehl, es sei denn, das aktuelle Verzeichnis ist /Users
(oder ein anderes Verzeichnis mit einem lukas
darin).
Untersuchen wir also Ihre Beispiele, vorausgesetzt, Sie sind in /Users/lukas
:
$ cd Documents/
/Users/lukas/Documents
Relativer Pfad angegeben => Wechseln Sie in das Verzeichnis "Documents", das sich darin befindet /Users/lukas
.
$ cd /Documents
-bash: cd: /Documents: No such file or directory
Absoluter Pfad angegeben => zum Verzeichnis wechseln /Documents
.
$ pwd
/
Dies zeigt, dass Sie jetzt das Arbeitsverzeichnis in das Stammverzeichnis geändert haben /
(obwohl der entsprechende cd
Befehl nicht angezeigt wurde).
$ cd Users
/Users
Relativer Pfad angegeben => Wechseln Sie in das Verzeichnis "Users", das sich darin befindet /
.
$ cd /Users
/Users
Absoluter Pfad angegeben => zum Verzeichnis wechseln /Users
.
Der Schlüssel ist jedes Mal der führende /
. Damit ist der Weg absolut. Ohne sie ist der Pfad relativ. Diese Regel ist eindeutig, da alle absoluten Pfade mit beginnen /
(da das Stammverzeichnis immer aufgerufen wird /
).
Hier ist ein Pseudocode, der diesen Algorithmus lose beschreibt:
MakePathAbsolute(path):
if <path> starts with '/'
return <path>
else
return <current directory>/<path>
Das Argument, an das Sie übergeben, cd
durchläuft diesen Algorithmus. Das Verzeichnis, in das Sie wechseln, ist der Pfad, den der Algorithmus zurückgibt.
Weitere Lektüre: