You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在执行cd命令后自动在Shell中输出当前工作目录(pwd)

如何在执行cd命令后自动在Shell中输出当前工作目录(pwd)

嗨,这个需求确实挺实用的,我来给你分享两种在Ubuntu的bash里实现的办法,亲测好用:

  • 方法一:重定义cd命令(最直接的方案)
    打开你的用户主目录下的~/.bashrc配置文件(用nano ~/.bashrc或者vim ~/.bashrc都可以),在文件末尾添加这段代码:

    cd() {
        builtin cd "$@" && pwd
    }
    

    给你解释下这段代码的作用:

    • builtin cd:调用系统原生的cd命令,避免我们自定义的cd函数递归调用自己,导致出错;
    • "$@":完整传递你给cd的所有参数,比如cd ../test-dir这种带参数的切换操作也能正常处理;
    • && pwd:只有当cd命令执行成功(也就是目录切换成功)时,才会输出当前工作目录。这样如果你cd到一个不存在的目录,就不会乱输出无效路径啦。

    保存文件后,执行source ~/.bashrc让修改立即生效,之后你再用cd命令,就会像在Solaris上一样,自动显示当前目录了。

  • 方法二:利用PROMPT_COMMAND(更灵活的方案)
    如果你想覆盖更多场景——比如用pushd、popd这类命令切换目录时也自动显示路径,可以试试这个方法。同样在~/.bashrc末尾添加:

    # 初始化变量记录上次的工作目录
    LAST_PWD="$PWD"
    PROMPT_COMMAND='if [ "$PWD" != "$LAST_PWD" ]; then pwd; LAST_PWD="$PWD"; fi'
    

    原理很简单:bash每次准备显示提示符之前,都会执行PROMPT_COMMAND里的命令。这里我们对比当前目录和上次记录的目录,只要目录发生了变化,就自动输出pwd,同时更新记录的目录。这样不管你用什么方式切换目录,都能自动显示当前路径。

要是之后想恢复原来的cd行为,只要把添加的代码从~/.bashrc里删掉,再执行source ~/.bashrc就可以啦。

备注:内容来源于stack exchange,提问作者chessytoasty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 11:49:32