1. 命令简介cdChange Directory是 Linux/Unix 系统中用于切换用户当前工作目录的内建命令。它是日常操作和脚本编写中最基础、最常用的命令之一用于在文件系统层级结构中导航。2. 语法格式bash运行cd [-L|[-P [-e]]] [dir]3. 常用选项及说明表格选项说明-L逻辑切换默认行为 如果要切换到的目标目录 dir 是一个符号链接则切换到该符号链接本身所在的目录。-P物理切换 如果要切换到的目标目录 dir 是一个符号链接则切换到该符号链接所指向的实际物理目录。-e与 -P 选项一同使用时如果无法成功确定当前工作目录例如由于权限问题则命令会返回失败状态。-一个特殊的参数用于切换到上一个工作目录即环境变量 OLDPWD 的值。执行时会先显示目标目录路径再切换。参数说明dir可选指定要切换到的目标目录。可以是绝对路径以 / 开头的完整路径。相对路径相对于当前目录的路径。特殊符号~ 或省略表示当前用户的主目录$HOME。.表示当前目录本身通常用于显式指明当前目录或在路径中表示 “这里”。..表示当前目录的父目录。变量或 CDPATH当 cdable_vars 选项启用时dir 可能被解释为变量名。环境变量HOME用户的主目录。当 cd 命令不带参数时默认切换到此目录。OLDPWD系统自动记录的上一个工作目录路径。cd - 就是利用此变量。CDPATH一个由冒号分隔的目录列表。当指定的 dir 不是绝对路径不以 / 开头时cd 会依次在 CDPATH 列出的每个目录下查找名为 dir 的子目录。这可以用于快速跳转到常用目录的深层子目录。4. 示例用法基础导航bash运行cd # 切换到当前用户的主目录$HOME cd /usr/local # 使用绝对路径切换到 /usr/local 目录 cd bin # 使用相对路径切换到当前目录下的 bin 子目录 cd .. # 切换到上一级目录 cd ../.. # 向上切换两级目录 cd ~ # 切换到当前用户的主目录 cd ~username # 切换到指定用户 username 的主目录需有权限使用特殊参数 -bash运行cd /var/log # 先切换到 /var/log cd /usr # 再切换到 /usr cd - # 切换回上一个目录 /var/log终端会显示/var/log利用 CDPATH 环境变量假设你经常访问几个不同项目下的 src 目录bash运行# 设置 CDPATH包含多个项目的父目录 export CDPATH.:~/projects:/opt/work # 当前在 ~ 目录 cd src # 系统会按顺序查找 # 1. ./src (当前目录下的src如果不存在) # 2. ~/projects/src (找到并进入) # 这样无需输入完整路径即可快速跳转。符号链接处理-L 与 -P假设 /opt/app 是一个指向 /usr/local/application 的符号链接。bash运行# 默认 -L 行为 cd /opt/app pwd # 输出/opt/app 显示符号链接路径 # 使用 -P 选项 cd -P /opt/app pwd # 输出/usr/local/application 显示实际物理路径在脚本中使用bash运行#!/bin/bash # 记录脚本开始时的目录以便最后可以返回 ORIGINAL_DIR$(pwd) # 切换工作目录出错直接退出 cd /target/path || exit 1 # 执行业务逻辑... # 执行完毕切换回原始目录 cd $ORIGINAL_DIR5. 注意事项内建命令cd 是 Shell如 bash、zsh的内建命令并非一个独立的外部程序。因此查看其详细帮助应使用 help cd而非 man cd。脚本中的路径依赖在 Shell 脚本中使用 cd 改变的是脚本进程自身的当前目录。脚本执行完毕后调用该脚本的终端会话的当前目录不会改变。脚本内部后续的所有相对路径操作都将基于新的工作目录。错误处理在脚本中如果 cd 的目标目录不存在或无权限访问命令会失败。为了脚本的健壮性建议对关键的 cd 操作进行错误检查bash运行cd /path/to/dir || { echo Error: Failed to change directory to /path/to/dir 2; exit 1; }CDPATH 的副作用设置 CDPATH 虽然方便但可能会让 cd 命令的行为不符合直觉尤其是当子目录名在多个地方存在时。在编写需要可移植性或明确路径的脚本时最好使用绝对路径或明确指定相对路径的起点并避免依赖 CDPATH。cdable_vars 选项这是一个 bash 特有的 Shell 选项通过 shopt -s cdable_vars 开启。开启后如果 cd 的参数不是一个存在的目录或 CDPATH 中的子目录bash 会尝试将其当作变量名并使用该变量的值作为目录路径。此功能需谨慎使用以免与目录名混淆。目录名包含空格或特殊字符如果目录名包含空格、引号或其他特殊字符必须用引号将其括起或使用转义字符 \。bash运行cd My Documents cd My\ Documents
Linux cd命令超详细全解!从基础用法到高阶技巧|目录导航必备
发布时间:2026/7/10 23:37:25
1. 命令简介cdChange Directory是 Linux/Unix 系统中用于切换用户当前工作目录的内建命令。它是日常操作和脚本编写中最基础、最常用的命令之一用于在文件系统层级结构中导航。2. 语法格式bash运行cd [-L|[-P [-e]]] [dir]3. 常用选项及说明表格选项说明-L逻辑切换默认行为 如果要切换到的目标目录 dir 是一个符号链接则切换到该符号链接本身所在的目录。-P物理切换 如果要切换到的目标目录 dir 是一个符号链接则切换到该符号链接所指向的实际物理目录。-e与 -P 选项一同使用时如果无法成功确定当前工作目录例如由于权限问题则命令会返回失败状态。-一个特殊的参数用于切换到上一个工作目录即环境变量 OLDPWD 的值。执行时会先显示目标目录路径再切换。参数说明dir可选指定要切换到的目标目录。可以是绝对路径以 / 开头的完整路径。相对路径相对于当前目录的路径。特殊符号~ 或省略表示当前用户的主目录$HOME。.表示当前目录本身通常用于显式指明当前目录或在路径中表示 “这里”。..表示当前目录的父目录。变量或 CDPATH当 cdable_vars 选项启用时dir 可能被解释为变量名。环境变量HOME用户的主目录。当 cd 命令不带参数时默认切换到此目录。OLDPWD系统自动记录的上一个工作目录路径。cd - 就是利用此变量。CDPATH一个由冒号分隔的目录列表。当指定的 dir 不是绝对路径不以 / 开头时cd 会依次在 CDPATH 列出的每个目录下查找名为 dir 的子目录。这可以用于快速跳转到常用目录的深层子目录。4. 示例用法基础导航bash运行cd # 切换到当前用户的主目录$HOME cd /usr/local # 使用绝对路径切换到 /usr/local 目录 cd bin # 使用相对路径切换到当前目录下的 bin 子目录 cd .. # 切换到上一级目录 cd ../.. # 向上切换两级目录 cd ~ # 切换到当前用户的主目录 cd ~username # 切换到指定用户 username 的主目录需有权限使用特殊参数 -bash运行cd /var/log # 先切换到 /var/log cd /usr # 再切换到 /usr cd - # 切换回上一个目录 /var/log终端会显示/var/log利用 CDPATH 环境变量假设你经常访问几个不同项目下的 src 目录bash运行# 设置 CDPATH包含多个项目的父目录 export CDPATH.:~/projects:/opt/work # 当前在 ~ 目录 cd src # 系统会按顺序查找 # 1. ./src (当前目录下的src如果不存在) # 2. ~/projects/src (找到并进入) # 这样无需输入完整路径即可快速跳转。符号链接处理-L 与 -P假设 /opt/app 是一个指向 /usr/local/application 的符号链接。bash运行# 默认 -L 行为 cd /opt/app pwd # 输出/opt/app 显示符号链接路径 # 使用 -P 选项 cd -P /opt/app pwd # 输出/usr/local/application 显示实际物理路径在脚本中使用bash运行#!/bin/bash # 记录脚本开始时的目录以便最后可以返回 ORIGINAL_DIR$(pwd) # 切换工作目录出错直接退出 cd /target/path || exit 1 # 执行业务逻辑... # 执行完毕切换回原始目录 cd $ORIGINAL_DIR5. 注意事项内建命令cd 是 Shell如 bash、zsh的内建命令并非一个独立的外部程序。因此查看其详细帮助应使用 help cd而非 man cd。脚本中的路径依赖在 Shell 脚本中使用 cd 改变的是脚本进程自身的当前目录。脚本执行完毕后调用该脚本的终端会话的当前目录不会改变。脚本内部后续的所有相对路径操作都将基于新的工作目录。错误处理在脚本中如果 cd 的目标目录不存在或无权限访问命令会失败。为了脚本的健壮性建议对关键的 cd 操作进行错误检查bash运行cd /path/to/dir || { echo Error: Failed to change directory to /path/to/dir 2; exit 1; }CDPATH 的副作用设置 CDPATH 虽然方便但可能会让 cd 命令的行为不符合直觉尤其是当子目录名在多个地方存在时。在编写需要可移植性或明确路径的脚本时最好使用绝对路径或明确指定相对路径的起点并避免依赖 CDPATH。cdable_vars 选项这是一个 bash 特有的 Shell 选项通过 shopt -s cdable_vars 开启。开启后如果 cd 的参数不是一个存在的目录或 CDPATH 中的子目录bash 会尝试将其当作变量名并使用该变量的值作为目录路径。此功能需谨慎使用以免与目录名混淆。目录名包含空格或特殊字符如果目录名包含空格、引号或其他特殊字符必须用引号将其括起或使用转义字符 \。bash运行cd My Documents cd My\ Documents