最近我发现有时无法使用cd -
回到上一个目录。它给出错误-bash: cd: ~/whatever_dir: No such file or directory
。仔细查看发现,只有当最后一个目录包含波浪号时才会出现错误。波浪号似乎无法展开。但是“cd ~”可以成功切换到我的主目录。问题是什么?我知道波浪号不会在引号内展开,但是执行 时存储的最后一个目录不在引号中cd -
,对吗?另外,cd -
以前对我来说是有效的。
答案1
问题的可能根源是作为PROMPT_COMMAND
bash 配置的一部分执行的:
PWD="${PWD/$HOME/~}"
不要重新分配PWD
不同的值。这只会破坏事物。
答案2
您的 shell 中有一个严重的错误,您应该报告。您说在这种情况下,$OLDPWD
显示~/whatever_dir
。它不应该。
以下是我所拥有的内容:
fge@erwin ~/whatever_dir $ pwd
/home/fge/whatever_dir
fge@erwin ~/whatever_dir $ cd -
/home/fge
fge@erwin ~ $ echo $OLDPWD
/home/fge/whatever_dir
~
只是 shell 用来表示主目录的便捷快捷方式。我的是/home/fge
。无论如何,$OLDPWD
应该显示绝对路径,而不是包含 的路径~
,除非您有一个名为 的目录~
。