当我使用 'cd' 命令时,如何关闭 bash 中的“自动回显”功能?

当我使用 'cd' 命令时,如何关闭 bash 中的“自动回显”功能?

我不知道这种情况是什么时候开始发生的,但现在,每次我 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以停止该操作。)

相关内容