在 mac 终端中,使用 cd - 命令可以返回上一次所在的目录。该命令会切换至环境变量 $oldpwd 所记录的路径,并在切换成功后打印出目标路径的绝对值,方便确认当前位置。

cd - 命令的具体执行流程是怎样的
cd - 的执行依赖于 Shell 内部维护的两个变量:$PWD 和 $OLDPWD。当执行普通 cd 时,Shell 会将当前的 $PWD 赋值给 $OLDPWD,然后更新 $PWD。而 cd - 则是读取 $OLDPWD 并执行切换。如果之前没有进行过目录切换,或者 $OLDPWD 为空,该命令将报错。

cd /tmp mkdir test_dir cd test_dir cd - pwd
预期输出:
/tmp /tmp
如何查看当前目录与上次目录的环境变量状态
可以通过直接打印环境变量来查看当前目录和上次目录的状态。echo $PWD 显示当前工作目录,echo $OLDPWD 显示上一次的工作目录。这种查看方式有助于理解 cd - 背后的数据源,特别是在脚本编写或排查路径问题时非常有用。

echo "Current: $PWD" echo "Previous: $OLDPWD"
预期输出(假设当前在 /tmp/test_dir):
Current: /tmp/test_dir Previous: /tmp
连续多次使用 cd - 会产生什么结果
连续多次使用 cd - 会在两个目录之间来回切换。第一次执行后,$PWD 变为旧目录,$OLDPWD 变为新目录;第二次执行时,又切回最初的新目录。这种行为类似于一个栈的深度为 1 的回退机制,仅保留最近的一次切换记录,无法实现多级历史回溯。

















