Sulla mia macchina, a causa del modo in cui ho impostato le cose, faccio:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
La prima presta attenzione al valore della variabile ambientale $HOME
; Ho deliberatamente impostato my $HOME
su un file system locale anziché su un file system montato su NFS. Il secondo legge dal file delle password (approssimativamente; NIS complica un po 'le cose) e scopre che il file delle password dice che la mia home directory è /u/jleffler
e passa a quella directory.
La cosa fastidiosa è che la maggior parte del software si comporta come sopra (e la specifica POSIX per la shell richiede questo comportamento). Uso un software (e non ho molta scelta per usarlo) che tratta le informazioni dal file della password come il valore corrente di $ HOME, il che è sbagliato.
Applicando questo alla domanda - come altri hanno sottolineato, " cd ~x
" va alla directory home dell'utente "x" e, più in generale, ogni volta che viene eseguita l'espansione della tilde, ~x
indica la directory home dell'utente "x" (ed è un errore se l'utente 'x' non esiste).
Potrebbe valere la pena ricordare che:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
Non riesco a trovare immediatamente un uso per " ~+
", a meno che tu non faccia cose strane con lo spostamento di collegamenti simbolici nel percorso che porta alla directory corrente.
Puoi anche fare:
cd -
Significa lo stesso di ~-
.