Sur ma machine, en raison de la façon dont je configure les choses, je fais:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
Le premier fait attention à la valeur de la variable d'environnement $HOME
; J'ai délibérément configuré mon $HOME
sur un système de fichiers local au lieu d'un système de fichiers monté sur NFS. Le second lit le fichier de mot de passe (environ; NIS complique un peu les choses) et trouve que le fichier de mot de passe indique que mon répertoire personnel est /u/jleffler
et change vers ce répertoire.
Le truc ennuyeux est que la plupart des logiciels se comportent comme ci-dessus (et la spécification POSIX pour le shell exige ce comportement). J'utilise un logiciel (et je n'ai pas beaucoup de choix pour l'utiliser) qui traite les informations du fichier de mots de passe comme la valeur actuelle de $ HOME, ce qui est faux.
En appliquant cela à la question - comme d'autres l'ont souligné, ` cd ~x
` va dans le répertoire personnel de l'utilisateur 'x', et plus généralement, chaque fois que le développement du tilde est fait, ~x
signifie le répertoire personnel de l'utilisateur 'x' (et c'est une erreur si l'utilisateur «x» n'existe pas).
Il pourrait être intéressant de mentionner que:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
Je ne peux pas trouver immédiatement une utilisation pour ' ~+
', à moins que vous ne fassiez des trucs bizarres en déplaçant des liens symboliques dans le chemin menant au répertoire actuel.
Vous pouvez également faire:
cd -
Cela signifie la même chose que ~-
.