Auf meinem Rechner, wegen der Art, wie ich die Dinge eingerichtet haben, tun:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
die erste Aufmerksamkeit auf den Wert der Umgebungsvariablen $HOME
zahlt; Ich setze meine $HOME
absichtlich auf ein lokales Dateisystem statt auf ein NFS-eingehängtes Dateisystem. Die zweite liest aus der Passwort-Datei (ungefähr; NIS kompliziert die Dinge ein bisschen) und findet, dass die Passwort-Datei sagt mein Heimatverzeichnis ist /u/jleffler
und ändert sich in dieses Verzeichnis.
Die nervige Sache ist, dass die meisten Software verhält sich wie oben (und die POSIX-Spezifikation für die Shell erfordert dieses Verhalten). Ich benutze eine Software (und ich habe nicht viel Wahl, um sie zu verwenden), die die Informationen aus der Passwortdatei als den aktuellen Wert von $ HOME behandelt, was falsch ist.
diese Anwendung auf die Frage - wie andere haben darauf hingewiesen, ‚cd ~x
‘ auf das Home-Verzeichnis des Benutzers x 'und, allgemeiner, wann immer Tilde-Erweiterung erfolgt, ~x
bedeutet das Home-Verzeichnis des Benutzers x' geht (und es ist ein Fehler, wenn der Benutzer 'x' nicht existiert).
Es könnte sein, erwähnenswert, dass:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
ich nicht sofort eine Verwendung für ‚~+
‘ finden kann, es sei denn, Sie haben einige seltsame Dinge mit symbolischen Links in dem Pfad, der zum aktuellen bewegenden Verzeichnis.
Sie können auch tun:
cd -
Das ist die gleiche wie ~-
bedeutet.
~ X gibt einfach das Literal "~ X" zurück, aber ~ gibt $ HOME zurück und ~ + gibt $ PWD zurück - sie sind nicht speziell, außer dass sie Shell-Variablen abrufen. d.h. sie speichern die Werte nicht oder führen einen Befehl aus, um sie nachzuschlagen. Sie sind bereits definiert. Hast du versucht ~ -? Ich denke nicht an eine Verwendung dafür, aber wieder, es gibt eine Shell-Variable $ OLDPWD – SDsolar