Linux / 命令 / cd / 移动到其他目录的命令
在 Linux 中,cd 命令会更改当前 shell 的工作目录。例如,执行 cd /etc 后,再执行 pwd 即可检查当前位置。
检查当前位置并移动
cd 是 change directory(更改目录)的缩写,是内置于 Bash 等 shell 的命令。你需要将想要切换到的目录作为参数指定。以下命令会移动到 /etc 并显示该位置。
cd /etc
pwd
如果移动成功,cd 命令本身通常不会有任何输出。确保 pwd 显示 /etc。移动操作不涉及移动文件或更改内容,而是更改当前 shell 的引用位置。其他终端的工作目录不会改变。
绝对路径和相对路径
绝对路径从根目录/开始。例如,以下命令指定/var/log,而不管您当前的位置如何。该目录必须存在且可访问。
cd /var/log
pwd
相对路径基于当前位置。例如,要移动到/var,然后进入其中的log,执行如下操作。
cd /var
cd ./log
pwd
如果成功,将显示/var/log。.指当前目录,因此./log相对于当前位置为log。如果在Bash中设置了CDPATH,cd log可以使用替代搜索路径,但cd ./log明确指向当前目录。如果移动失败,请在执行下一个命令前解决错误。
移动到父目录和上一个位置
.. 指的是父目录。如果当前位置是 /var/log,以下命令将移动到 /var。
cd ..
pwd
要返回之前访问的目录,请使用以下命令。
cd -
Bash 中的 cd - 会移动到上一个工作目录并打印其路径。如果上一个位置未设置或无法访问,则可能会失败。在上面的示例中,如果你刚刚从 /var/log 移动到 /var,它将返回到 /var/log。
移动到主目录
如果你在没有提供路径的情况下运行 cd,Bash 会移动到 HOME 变量中设置的主目录。~ 通常也会被展开为当前用户的主目录。
cd
pwd
主目录的位置因账户和设置而异,因此不要总是假设它是 /home/user。cd ~/Documents 会在主目录下移动到 Documents,如果该目录不存在,则操作会失败。Bash 中的 cd ~user 是一种用实际账户名替换 user 以指示该账户的主目录路径的方法。它不会以另一个用户身份登录或授予权限,并且你必须拥有目标的访问权限。
带有空格和符号链接的路径
如果目录名包含空格,请将路径用引号括起来。下面的示例在当前目录包含my folder时使用它。
cd "my folder"
使用主路径时,可以将~放在引号外,其余部分用引号括起来。以下示例显示my folder位于主目录下的情况。
cd ~/"my folder"
如果通过符号链接移动,显示的路径和实际目录路径可能不同。Bash的pwd -P显示物理路径。cd -P基于从链接解析的物理路径进行移动,而..处理的结果可能与默认行为不同。更多详情,请查看Bash的cd和pwd说明。
无法切换目录时如何检查
- 路径未找到: 检查拼写和大小写敏感性,以及您当前的位置,并使用
ls查看名称是否存在。该文件不是目录,因此无法使用cd进入。 - 权限被拒绝: 确保您具有访问目标及其父目录的搜索权限。不要随意更改权限,请向管理员请求必要的访问权限。
- 意外位置: 比较
pwd和pwd -P,并检查符号链接或CDPATH设置。
你可以使用 help cd 在 Bash 中查看内置命令的帮助。在脚本中,你需要检查退出状态,以确保当 cd 失败时不会继续执行后续操作。




