En mi máquina, debido a la forma en que tengo las cosas configuradas, haciendo:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
El primero presta atención al valor de la variable de entorno $HOME
; Deliberadamente configuré mi $HOME
en un sistema de archivos local en lugar de un sistema de archivos montado en NFS. El segundo lee del archivo de contraseña (aproximadamente; NIS complica un poco las cosas) y encuentra que el archivo de contraseña dice que mi directorio de inicio es /u/jleffler
y cambia a ese directorio.
Lo molesto es que la mayoría del software se comporta como se indicó anteriormente (y la especificación POSIX para el shell requiere este comportamiento). Utilizo algún software (y no tengo muchas opciones sobre su uso) que trata la información del archivo de contraseña como el valor actual de $ HOME, lo cual es incorrecto.
Aplicando esto a la pregunta, como otros han señalado, ' cd ~x
' va al directorio de inicio del usuario 'x' y, de manera más general, siempre que se realiza la expansión de tilde, ~x
significa el directorio de inicio del usuario 'x' (y es un error si el usuario 'x' no existe).
Vale la pena mencionar que:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
No puedo encontrar un uso inmediato para ' ~+
', a menos que haga algunas cosas raras moviendo enlaces simbólicos en la ruta que lleva al directorio actual.
También puedes hacer:
cd -
Eso significa lo mismo que ~-
.