菜鸟科技网

Linux后退命令有哪些?

在Linux操作系统中,命令行操作是高效管理系统的核心技能之一,而“后退”命令则是用户在命令行界面(CLI)中频繁使用的操作,主要用于在目录层级中逐级返回上一级目录,或快速返回用户主目录、根目录等关键位置,Linux提供了多种“后退”相关的命令和快捷方式,涵盖不同场景下的需求,以下从基础到进阶进行详细解析。

Linux后退命令有哪些?-图1
(图片来源网络,侵删)

基础后退命令:cd与目录导航

cd(change directory)是Linux中最核心的目录切换命令,其“后退”功能主要通过参数组合实现,默认情况下,cd不带参数时会切换到当前用户的家目录(/home/用户名),而“后退”操作主要依赖以下两种方式:

  1. 单级后退:cd ..
    在Linux文件系统中,每个目录都包含一个特殊的(当前目录)和(父目录)标识。cd ..命令的作用是切换到当前目录的上一级目录,若当前路径为/home/user/docs,执行cd ..后将进入/home/user
    示例

    pwd          # 输出当前路径,如 /home/user/docs
    cd ..        # 切换到上一级目录
    pwd          # 输出 /home/user
  2. 多级后退:cd ../../...
    若需连续后退多级目录,可重复使用,从/home/user/docs/projects后退两级,执行cd ../..将进入/home/user
    示例

    pwd          # 输出 /home/user/docs/projects
    cd ../..     # 后退两级
    pwd          # 输出 /home/user

快速返回关键目录的快捷方式

除了逐级后退,cd命令支持特殊参数实现快速跳转:

Linux后退命令有哪些?-图2
(图片来源网络,侵删)
  1. 返回家目录:cd ~cd
    是Linux中家目录的缩写,执行cd ~或直接输入cd(无参数)可立即返回当前用户的家目录。
    示例

    pwd          # 输出 /tmp/test
    cd           # 或 cd ~
    pwd          # 输出 /home/user
  2. 返回上一次所在目录:cd -
    该命令用于在最近两个目录之间快速切换,常在频繁切换两个目录时使用,当前在/home/user,切换到/var/log后,执行cd -将返回/home/user,再次执行则回到/var/log
    示例

    cd /home/user
    cd /var/log
    pwd          # 输出 /var/log
    cd -         # 返回上一次目录
    pwd          # 输出 /home/user

结合Shell扩展的高级后退操作

现代Linux Shell(如Bash)支持通配符和路径扩展,可进一步提升后退效率:

  1. 利用通配符后退
    若目录名包含可通配的字符,可通过或匹配,从/home/user/docs_2023/projects后退到/home/user/docs_2023,可执行cd docs_*(需确保唯一匹配)。
    示例

    Linux后退命令有哪些?-图3
    (图片来源网络,侵删)
    cd /home/user/docs_2023/projects
    cd docs_*    # 匹配并切换到上一级目录
    pwd          # 输出 /home/user/docs_2023
  2. 使用绝对路径后退
    若需直接跳转到指定层级的父目录,可结合$(pwd)获取当前路径并截取,从/a/b/c/d后退到/a/b

    cd "$(pwd | cut -d'/' -f1-3)"  # 截取前3级路径

不同Shell环境下的后退命令差异

虽然主流Shell(Bash、Zsh等)均支持cd命令,但部分Shell(如Zsh)提供了更便捷的扩展:

  • Zsh的cd ..增强:Zsh支持cd ../..的简写形式,如cd ....可后退3级(每多一个后退一级)。
  • Fish Shell的cd补全:Fish支持通过cd ../按Tab键自动列出上级目录,提升操作效率。

常见后退场景与命令选择总结

为方便理解,以下通过表格对比不同后退场景的适用命令:

场景 推荐命令 示例路径 执行后路径
后退一级 cd .. /home/user/docs/home/user /home/user
后退两级 cd ../.. /home/user/docs/projects/home/user /home/user
返回家目录 cd ~cd /var/log/home/user /home/user
在最近两目录间切换 cd - /home/user/var/log 交替切换
通配符匹配后退 cd dir_* /home/user/docs_2023/home/user /home/user

注意事项

  1. 权限问题:若上级目录无执行权限,cd ..会报错“Permission denied”,需使用sudo或修改权限。
  2. 符号链接处理:若当前目录是符号链接,cd ..将跟随链接指向实际目录的父级,而非链接本身的父级,可通过cd -P(物理路径)或cd -L(逻辑路径)控制行为。
  3. 环境变量CDPATH环境变量可设置cd的默认搜索路径,例如export CDPATH=/home:/var后,cd docs会自动查找/home/docs/var/docs

相关问答FAQs

问题1:为什么执行cd ..后提示“Permission denied”?
解答:这通常是因为当前用户对上级目录没有“执行”(x)权限,在Linux中,访问目录需同时拥有读(r)、写(w)、执行(x)权限,其中执行权限允许用户进入目录,可通过ls -ld ..查看上级目录权限,若属主非当前用户且无组/其他用户执行权限,需联系目录所有者或使用sudo chmod +x ../添加权限(需谨慎操作)。

问题2:如何快速后退到指定层级的父目录,如从/a/b/c/d后退到/a/b
解答:可通过组合命令实现,方法一:使用dirname命令逐级提取路径,例如cd $(dirname $(dirname $(pwd)))(从当前路径后退两级);方法二:利用awkcut截取路径字段,如cd "$(pwd | cut -d'/' -f1-3)"(按分割并取前3级);方法三:若路径层级固定,可直接输入绝对路径cd /a/b,对于频繁操作,可将其定义为别名,如alias cd2='cd $(dirname $(dirname $(pwd)))'

分享:
扫描分享到社交APP
上一篇
下一篇