我不知道这种情况是什么时候开始发生的,但现在,每次我 cd 到目录时,它都会在更改目录之前回显路径。当我登录服务器时会发生这种情况,但不会发生在我的本地计算机上。服务器运行的是 Linux。我的本地计算机运行的是 Mac OS X。
我搜索了 Google 并查看了 bash 手册页,但什么也没找到。我的 .bashrc/.bash_profile 中没有任何与“cd”相关的内容(据我所知)。
我该如何修改这个“功能”?
答案1
由于 CDPATH 被定义为环境变量,因此 shell 会自动回显。如果您 UNSET CDPATH,则默认的 cd 行为将再次出现。
答案2
上面的建议取消设置 CDPATH 的答案可能是最好的。但是,如果您希望 CDPATH 在 -ing 时保持活动状态,cd
您也可以在脚本中使用类似以下内容的内容:
cd /path/to/wherever > /dev/null
答案3
另一个选项是cd
使用 bash 函数更永久地覆盖内置函数。我发现将类似这样的代码放在你的~/.profile
(或类似的)文件中时非常有效:
function cd() {
if [ -z "$*" ]; then
destination=~
else
destination=$*
fi
builtin cd "${destination}" >/dev/null && ls
}
- 这保留了
cd
无参数返回你的主目录。 - 负责
>/dev/null
接收回显的文件夹名称。(文件夹名称的回显会破坏用于FOO=$(cd $SOMEVAR && pwd)
将完整路径保存到变量的脚本。) - 最后;正如所写,此功能
ls
在更改目录后自动执行。(删除&& ls
以停止该操作。)