ZetCode

Linux cd 命令

最后修改于 2025 年 2 月 25 日

Linux 中的 cd 命令用于在终端中更改当前工作目录。它是导航文件系统最常用的命令之一。本教程通过实际示例涵盖了 cd 的基本和高级用法。

cd 对于在目录之间移动、访问文件以及在命令行中组织工作流至关重要。

基本用法

此示例导航到一个项目文件夹。

basic_usage.sh
cd /home/user/projects

cd 命令将当前目录更改为 /home/user/projects。这是一个从根目录 (/) 开始的绝对路径。如果路径存在且您有权限,shell 会更新您的当前工作目录。之后可以使用 pwd 来验证更改(例如,输出 /home/user/projects)。

更改到主目录

这会移动到您的个人主目录。

home_directory.sh
cd ~

~ 符号是当前用户主目录的简写,通常是 /home/username。它可用于从文件系统的任何位置快速返回您的个人空间。对于 root 用户,它通常是 /root。运行 echo $HOME 会显示相同的路径。

更改到父目录

这会向上移动到包含当前目录的目录。

parent_directory.sh
cd ..

.. 符号指的是您当前位置的父目录。例如,如果您在 /home/user/docs 中,这会将您带到 /home/user。您可以链式使用它(例如,cd ../..)来向上移动多个级别。它非常适合在层次结构中后退一步。

更改到上一个目录

这会切换回上次访问的目录。

previous_directory.sh
cd -

- 符号会调出存储在 $OLDPWD 变量中的上一个工作目录。如果您在 /var/log 中,然后运行 cd /etccd - 会将您返回到 /var/log。它还会打印目标路径。非常适合在两个位置之间切换。

更改到根目录

这会跳转到文件系统的顶部。

root_directory.sh
cd /

/ 符号表示根目录,即整个 Linux 文件系统的基础。运行此命令会将您置于 /,其中包含 binetcvar 等核心目录。它对于从顶部开始导航或访问系统文件很有用。

更改到子目录

这会进入当前目录中的一个文件夹。

subdirectory.sh
cd downloads

这里的 cd 命令使用相对路径,移动到当前位置的 downloads 子目录。如果您在 /home/user 中,它会将您带到 /home/user/downloads,前提是它存在。没有前导斜杠表示它是相对于您当前路径的。

高级:使用环境变量

这会使用一个变量来访问文档文件夹。

environment_variables.sh
cd $HOME/Documents

$HOME 变量存储您的主目录路径(例如,/home/user)。附加 /Documents 可以导航到 /home/user/Documents。环境变量使脚本具有可移植性和灵活性。您可以定义自定义变量(例如,export WORK=/work)并以类似的方式使用它们。

示例:多次跳转目录

这会链接命令来导航深度嵌套的路径。

multi_jump.sh
cd ../../usr/local/bin

这会向上移动两级,然后向下通过 usr/local/bin。如果您从 /home/user/docs/text 开始,.. 会将您带到 /home/user/docs,然后 .. 将您带到 /home/userusr/local/bin 会将您带到 /usr/local/bin。这是一个结合了父目录和子目录导航的相对路径。

示例:在路径中使用空格

这会处理名称中带有空格的目录。

spaces_in_path.sh
cd "~/My Documents"

带空格的目录需要用引号或进行转义。此处,"~/My Documents" 会展开为 /home/user/My Documents。如果没有引号,cd 会将 MyDocuments 解释为单独的参数并失败。或者,使用反斜杠 cd ~/My\ Documents 也可以。这对于真实的文件名至关重要。

示例:与其他命令结合使用

这会在一行中导航并列出内容。

combine_commands.sh
cd /etc && ls

&& 运算符会运行 cd /etc,如果成功,则执行 ls 来列出 /etc 中的文件。这种链接可以节省时间并确认目录更改。如果 cd 失败(例如,没有权限),ls 将不会运行。您也可以使用分号 cd /etc; ls 来运行,无论是否成功。

cd 的最佳实践

来源

GNU Bash 手册

在本文中,我们探讨了使用 cd 命令导航文件系统的各种示例,包括更改到主目录、父目录、上一个目录和根目录。

作者

我叫 Jan Bodnar,我是一名热情的程序员,拥有丰富的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出所有 Linux 教程