Auf meinem Computer habe ich aufgrund der Art und Weise, wie ich Dinge eingerichtet habe, Folgendes getan:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
Der erste achtet auf den Wert der Umgebungsvariablen $HOME
; Ich habe mein bewusst $HOME
auf ein lokales Dateisystem anstatt auf ein NFS-gemountetes Dateisystem eingestellt. Der zweite liest aus der Kennwortdatei (ungefähr; NIS macht die Sache etwas komplizierter) und stellt fest, dass in der Kennwortdatei angegeben ist, dass sich mein Ausgangsverzeichnis befindet, /u/jleffler
und wechselt in dieses Verzeichnis.
Das ärgerliche ist, dass sich die meiste Software wie oben verhält (und die POSIX-Spezifikation für die Shell erfordert dieses Verhalten). Ich verwende eine Software (und ich habe keine große Auswahl), die die Informationen aus der Kennwortdatei als den aktuellen Wert von $ HOME behandelt, was falsch ist.
Dies auf die Frage anwenden - wie andere bereits betont haben, cd ~x
geht ' ' in das Ausgangsverzeichnis des Benutzers 'x' und allgemeiner, wenn eine Tilde-Erweiterung durchgeführt wird, ~x
das Ausgangsverzeichnis des Benutzers 'x' (und es ist ein Fehler) wenn Benutzer 'x' nicht existiert).
Es könnte erwähnenswert sein, dass:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
Ich kann nicht sofort eine Verwendung für ' ~+
' finden, es sei denn, Sie machen einige seltsame Dinge mit dem Verschieben von Symlinks im Pfad, der zum aktuellen Verzeichnis führt.
Sie können auch tun:
cd -
Das heißt das gleiche wie ~-
.