文件与目录 / 命令文档

Linux cd 命令

$ cd 21 个章节 Linux 命令详解

概述

cd(Change Directory)是 Linux 系统中最基础且最重要的命令之一。它用于改变当前工作目录(CWD)。掌握它是学习 Linux 文件系统操作的第一步,相当于学会在 Linux 的目录树中“走路”。


基础概念

当前工作目录

每个用户在登录 Shell 时,都会有一个初始位置(通常是用户的家目录 /home/username 或 /root)。所有相对路径的解析都依赖于这个当前目录。

查看当前目录

在执行切换前,通常需要确认当前位置,使用的命令是 pwd(Print Working Directory)。

示例:

pwd

预期输出:

/root

基本语法与用法

1. 绝对路径导航

绝对路径从根目录(/)开始,完整描述文件或目录的位置,不受当前目录影响。

常用示例:

# 切换到 Nginx 配置目录
cd /etc/nginx

# 切换到 Web 根目录
cd /var/www/html
注意:绝对路径在任何位置执行都能准确到达目标。

2. 相对路径导航

相对路径基于当前所在目录,利用特殊目录符号进行定位。 - . :代表当前目录(通常可省略)。 - .. :代表上级目录。 - ~ :代表当前用户的家目录。

常用示例:

# 返回上级目录
cd ..

# 返回上两级目录(可叠加使用)
cd ../../

# 进入当前目录下的 config 子文件夹
cd ./config
# 或简写为
cd config

高级用法与技巧

1. 快速返回上一个目录

使用 cd - 可以在当前目录与上一个目录之间快速切换,非常适合在两个相距较远的目录间反复操作。

示例:

cd /var/log
cd /etc/nginx
# 此时执行
cd -
# 结果:返回 /var/log

2. 处理符号链接(软链接)

当进入一个符号链接指向的目录时,pwd 默认显示逻辑路径(链接路径)。如果使用 pwd -P,则会显示实际的物理路径。

示例场景: 假设 /home/link 指向 /var/data。

cd /home/link
pwd
# 输出:/home/link
pwd -P
# 输出:/var/data

3. 目录结构参考

以下是本课程常用的目录结构示例,理解它有助于后续实战练习:

/home/user/  ← 假设当前位置
├── Documents/
├── Downloads/
├── projects/
│   ├── web-app/
│   └── scripts/
└── readme.txt

运维实战技巧

以下技巧能显著提升你在终端中的操作效率:

技巧一:Tab 键自动补全 输入目录名的前几个字符后,按 Tab 键,系统会自动补全目录名。若有多个匹配项,再按一次 Tab 会列出所有选项。这能有效避免拼写错误。 示例:输入 cd /var/l 后按 Tab,会自动补全为 cd /var/log/。
技巧二:切换前验证路径 在切换到不确定的目录前,先使用 ls 查看目录内容,或使用 ls -d / 查看子文件夹,避免出现 No such file or directory 报错。 示例:ls -d /etc/ng 可以查看是否存在 nginx 相关目录。
技巧三:结合其他命令使用 cd 常与 &&(逻辑与)连用,只有切换成功时才执行后续操作,保证脚本的健壮性。 示例:cd /backup && tar -czf data.tar.gz ./data

实战练习

每个练习均模拟真实运维场景,请尝试手打命令,并观察输出结果。

场景 1:日志分析

目标:切换到 Nginx 日志目录,查看所有文件大小,然后返回原来的目录。

步骤与命令:

# 1. 切换到日志目录
cd /usr/local/nginx/logs

# 2. 查看当前目录所有文件的详细信息(含大小)
ls -lha

# 3. 返回切换前的目录(利用 cd -)
cd -

预期结果:成功列出 logs 下的文件列表,并回到执行脚本前的起始目录。


场景 2:配置管理

目标:切换到 NTP 配置目录,查看密钥文件内容,然后返回上级目录。

步骤与命令:

# 1. 切换到 ntp 配置目录
cd /etc/ntp

# 2. 查看 keys 文件内容(假设文件存在)
cat keys

# 3. 返回上级目录(/etc)
cd ..

预期结果:终端显示 keys 文件的内容,当前目录变为 /etc。


场景 3:应用部署(相对路径综合练习)

目标:从 Web 根目录出发,使用相对路径在 css 和 js 子目录间切换。

步骤与命令:

# 1. 进入 Web 根目录
cd /var/www/html

# 2. 进入 assets 下的 css 文件夹
cd assets/css

# 3. 从 css 文件夹跳转到同级的 js 文件夹(利用相对路径)
cd ../../js

预期结果:最终当前目录为 /var/www/html/assets/js。


场景 4:备份操作(结合变量)

目标:利用 cd 配合日期变量,进入以当天日期命名的备份文件夹。

步骤与命令:

# 1. 进入备份主目录
cd /home/user/backups

# 2. 进入以当前日期命名的子目录(例如 20260902)
cd $(date +%Y%m%d)

预期结果:若存在对应日期的文件夹,则成功进入;否则会提示目录不存在(可先用 mkdir 创建)。


常见错误与解决方案

错误 1:权限不足(Permission Denied)

报错信息:

bash: cd: /root: Permission denied

原因:普通用户无权进入 root 用户的家目录。 解决方案:使用 sudo -i 切换到 root 用户,或检查目录权限(使用 ls -ld /root 查看),确认自己是否有执行(x)权限。

错误 2:目录不存在(No such file or directory)

报错信息:

bash: cd: /nonexistent: No such file or directory

原因:路径拼写错误,或目录被误删。 解决方案: 1. 使用 ls 查看当前目录下的内容,确认拼写。 2. 检查是否遗漏了开头的 /(绝对路径)或 ../(相对路径)。 3. 利用 Tab 键自动补全来预防此错误。

错误 3:误入文件而非目录

报错信息:

bash: cd: not a directory: filename.txt

原因:试图 cd 进入一个普通文件。 解决方案:使用 ls -l 确认目标类型,第一列以 - 开头的是文件,以 d 开头的是目录。

同分类 · 其他命令文档