在我的机器上,由于我的设置方式,正在执行:
cd ~ # /work1/jleffler
cd ~jleffler # /u/jleffler
首先注意环境变量的值$HOME
;我故意将 my 设置$HOME
为本地文件系统,而不是 NFS 挂载的文件系统。第二个从密码文件中读取(大约;NIS 使事情变得有点复杂)并发现密码文件说我的主目录是/u/jleffler
并且更改到该目录。
烦人的事情是大多数软件的行为都与上述相同(并且 shell 的 POSIX 规范需要这种行为)。我使用了一些软件(而且我没有太多选择使用它)将密码文件中的信息视为 $HOME 的当前值,这是错误的。
将此应用于问题 - 正如其他人指出的那样,' cd ~x
'进入用户'x'的主目录,更一般地说,每当波浪号扩展完成时,~x
意味着用户'x'的主目录(这是一个错误如果用户“x”不存在)。
可能值得一提的是:
cd ~- # Change to previous directory ($OLDPWD)
cd ~+ # Change to current directory ($PWD)
我无法立即找到 ' ~+
' 的用途,除非您在通向当前目录的路径中移动符号链接来做一些奇怪的事情。
你也可以这样做:
cd -
这意味着与 相同~-
。