
Meine grundlegende Frage ist, warum beide Pfade auf ~
die Startseite (also ) verweisen. Verweisen sie auf dieselbe Startseite oder handelt es sich um einen Duplikat?
Ich bezweifle, dass es dupliziert ist. Wenn nicht, wie wird dann cd ..
entschieden, in welches Verzeichnis ich zurückgeleitet werde?
Antwort1
Das cd ..
Verhalten hängt von der Shell, den Shell-Einstellungen und davon ab, ob (wie in diesem Fall wahrscheinlich) symbolische Links beteiligt sind.
bash-4.1$ cd /var/tmp
bash-4.1$ mkdir -p real/cats
bash-4.1$ ln -s real/cats dogs
bash-4.1$ cd dogs/
bash-4.1$ pwd
/var/tmp/dogs
bash-4.1$ pwd -P
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp
bash-4.1$ set -o physical
bash-4.1$ cd dogs
bash-4.1$ pwd
/var/tmp/real/cats
bash-4.1$ cd ..
bash-4.1$ pwd
/var/tmp/real
bash-4.1$
Die Untersuchung des /var/mail
Verzeichnisses ls
sollte zeigen, ob es irgendwelche symbolischen Links gibt, die vermutlich von Apple stammen.
Antwort2
Unter macOS (was ich annehme, da Sie erwähnen, dass es so ist /Users
) /var/mail/username
ist dies das mbox
-formatierte Posteingangspostfach für den Benutzer username
und /Users/username
das Home-Verzeichnis für denselben Benutzer.
Bei einer normalen, unveränderten Installation von macOS /var/mail/username
wirdnichtEs darf sich weder um einen symbolischen Link zum Home-Verzeichnis des Benutzers handeln, noch /Users/username
um einen Link zu /var/mail/username
.
cd ..
funktioniert standardmäßig wie folgt cd -L ..
, d. h. Sie gelangen zumlogischübergeordnetes Verzeichnis statt desphysischübergeordnetes Verzeichnis ( cd -P ..
).
Aus dem ksh
Handbuch zu macOS:
Standardmäßig werden symbolische Linknamen bei der Suche nach dem Verzeichnisnamen wörtlich behandelt. Dies entspricht der
-L
Option. Die-P
Option bewirkt, dass symbolische Links bei der Ermittlung des Verzeichnisses aufgelöst werden. Die letzte Instanz von-L
oder-P
in der Befehlszeile bestimmt, welche Methode verwendet wird.