Sur ma machine, car de la façon que j'ai des choses mis en place, en faisant:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
La première accorde de l'attention à la valeur de la variable d'environnement $HOME
; j'ai volontairement mis mon $HOME
pour un système de fichiers local au lieu d'un NFS-système de fichiers monté. Le deuxième lit le fichier de mot de passe (environ; NIS compliquer un peu les choses) et constate que le fichier de mot de passe dit, mon répertoire de base est de /u/jleffler
et des changements à ce répertoire.
Les trucs ennuyeux est que la plupart des logiciels se comporte comme ci-dessus (et la spécification POSIX pour le shell nécessite de ce comportement). J'utilise certains logiciels (et je n'ai pas beaucoup de choix quant à l'utilisation), qui traite les informations à partir du fichier de mot de passe comme la valeur actuelle de $à la MAISON, ce qui est faux.
L'application de ce à la question - comme d'autres l'ont souligné, 'cd ~x
"va dans le répertoire home de l'utilisateur 'x', et, plus généralement, à chaque fois que tilde expansion est effectuée, ~x
signifie que le répertoire home de l'utilisateur 'x' (et c'est une erreur si l'utilisateur 'x' n'existe pas).
Il pourrait être utile de mentionner que:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
Je ne peux pas immédiatement trouver une utilisation pour '~+
', sauf si vous avez un truc bizarre avec le déplacement des liens symboliques dans le chemin menant vers le répertoire courant.
Vous pouvez également le faire:
cd -
Que signifie la même chose que ~-
.