首页 > Sysadmin > 正文

Linux 返回上级目录:cd 切换命令

huyuanwen 2026-11-02 Sysadmin

终端里跳错目录是高频操作。本文用实测过的命令帮你快速回到正确位置,覆盖 4 种切换写法。

一、cd -:跳到上次所在目录

# 两次 cd - 在 /tmp 和 /etc 之间往返(WSL2 Ubuntu 24.04,bash 5.2.x 实测)
cd /tmp
cd /etc
cd -        # 输出:/tmp
cd -        # 再打一次,又回 /etc

输出路径就是当前工作目录,可以直接读取下一步要往哪走 [1]。

二、cd ..:逐级向上返回

cd /var/log/nginx                # 在 /var/log/nginx 下
cd ..                            # 回到 /var/log
cd /var/log/nginx/site-a/deep    # 在 /var/log/nginx/site-a/deep 下
cd ../..                         # 一次向上两级,到 /var/log/nginx
cd ../../..                      # 一次向上三级

.. 是每个目录里的 . 和 .. 特殊条目之一,指向当前目录的父目录;连续几个 ../ 可以一次向上多级 [2]。

从深层目录快速跳出常见写法:

# 在 /a/b/c/d/e 里,回到 /a/b
cd ../../..     # 等价于 cd ../../../.. 的简化计算

每次 cd 之后,$OLDPWD 都会自动记录出发位置,形成完整的路径跳转历史 [4]。

三、用 pwd 确认当前实际位置

cd /var/log
pwd            # 逻辑路径:/var/log
ln -sfn /etc /tmp/mylink
cd /tmp/mylink
pwd           # 逻辑:/tmp/mylink
pwd -P        # 物理:/etc(解析符号链接)
rm /tmp/mylink

访问路径时,$PWD 环境变量同步记录逻辑路径;/proc/self/cwd 也是当前目录的符号链接,由内核维护,可以直接读取 [5]。pwd 的 -L(默认)和 -P 行为由 POSIX 和 Linux man7 记录 [3][4]。

四、排错速查表

现象 原因 处理
cd - 第一次报错 从未切换过目录,$OLDPWD 为空 先 cd 到另一个目录再试
cd .. 无法向上 已在根目录 /,父目录就是本身 pwd 确认当前路径
多层 .. 计算错误 少算或多算了一层 pwd 先确认当前层级
pwd 显示路径有误 当前路径含符号链接 用 pwd -P 查物理路径

参考资料

文中主要命令已在 WSL Ubuntu(24.04)实测并核对其在 Debian 系与通用发行版的文档口径。