(二)文件管理-基础命令-cd命令的使用

发布于:2025-09-04 ⋅ 阅读:(28) ⋅ 点赞:(0)

1. 命令格式

cd [-L|-P] [dir]
  • -L: (默认行为) 如果 dir 是一个符号链接,则切换到该符号链接指向的目录
  • -P: (Physical) 如果 dir 是一个符号链接,则切换到该符号链接本身的物理位置,而不是它指向的位置。此选项会解析所有符号链接,使你进入一个“物理”绝对路径
  • [dir]: 目标目录。它可以是一个绝对路径(如 /usr/local/bin)、一个相对路径(如 …/Documents)或一些特殊的符号(如 ~, -)。如果省略 [dir],则默认为当前用户的家目录(~)

2. 基本用法

2.1 切换到当前用户的家目录

cd
# 或者
cd ~

2.2 切换到指定目录(绝对路径)

cd /usr/share/doc

2.3 切换到指定目录(相对路径)

cd Documents/Projects  # 进入当前目录下的 Documents/Projects 文件夹
cd ..                 # 进入上一级目录 (父目录)
cd ../Music           # 进入与当前目录同级的 Music 目录

2.4 切换到上一个工作目录

cd -
# 示例:
/home/user/Documents$ cd /var/log
/var/log$ cd -
/home/user/Documents$

3. 高级用法

3.1 使用 $OLDPWD 环境变量

cd - 的原理其实就是切换到了 $OLDPWD 环境变量所存储的路径。你可以直接使用这个变量

echo $OLDPWD  # 查看上一个目录的路径
cd "$OLDPWD"  # 效果同 `cd -`

3.2 使用 Tab 键自动补全

这不是 cd 命令本身的特性,而是 Shell(如 Bash)提供的功能。输入路径的一部分,然后按 Tab 键,Shell 会自动补全路径或列出可能的选择,能有效防止输错路径

3.3 CDPATH 环境变量

这是一个非常有用但常被忽略的功能。你可以设置一个冒号分隔的目录列表,当你使用相对路径时,cd 命令会优先在这些目录中查找

# 在 ~/.bashrc 文件中添加一行
export CDPATH=".:~:~/Work"  # 先在当前目录(.)找,然后在家目录(~)找,最后在 ~/Work 找

# 重新加载配置
source ~/.bashrc

# 现在,无论你在哪个目录下,都可以直接输入
cd project-alpha
# 如果当前目录没有 project-alpha,它会自动去 ~/Work 目录下找。
# 如果 ~/Work/project-alpha 存在,你就会直接进入那个目录。

4.注意事项

4.1 空格和特殊字符

如果目录名包含空格或特殊字符(如 !, $, *, 空格),必须用引号将其括起来,或者使用反斜杠 \ 进行转义

cd "My Projects"   # 正确
cd My\ Projects    # 正确
cd My Projects     # 错误!这会被解析为试图进入 "My" 和 "Projects" 两个目录

4.2 权限问题

你必须有对目标目录的 执行 (x) 权限 才能进入它。只有读 ® 权限是不够的

ls -ld /root        # 通常显示为 drwx------,意味着只有 root 用户能进入
cd /root            # 普通用户会提示 "Permission denied"

4.3 不存在路径

如果路径不存在,cd 会报错 No such file or directory

4.4 内建命令

cd 是 Shell 内建命令, 它不是磁盘上的一个独立程序,而是 Shell 的一部分。因此 which cd 通常会没有输出或显示为 shell builtin。它的行为可能因 Shell 的不同而有细微差别。


网站公告

今日签到

点亮在社区的每一天
去签到