在 Linux 系统中,切换到指定目录的核心命令是 cd(Change Directory)。该命令是 shell 内置命令,几乎在所有主流 shell(如 Bash、Zsh、Fish)中均可用。其基本语法为:cd [选项] [目录路径]。若不带任何参数直接执行 cd,系统会切换到当前用户的主目录(即 $HOME 环境变量指向的路径)。

要切换到指定目录,最直接的方式是提供路径。路径分为绝对路径和相对路径。绝对路径从根目录 / 开始描述,例如切换到 /var/log 目录,可执行 cd /var/log。相对路径则基于当前工作目录定位,例如当前位于 /home/user,要进入其下的 Documents 子目录,可执行 cd Documents;若要返回上一级目录,使用 cd ..;若要返回上上级目录,使用 cd ../..。
Linux 还提供了一系列特殊目录符号,用于快速切换:. 代表当前目录,.. 代表父目录,~ 代表当前用户主目录,-(连字符)代表上一次所在的目录。例如:cd ~ 切换到主目录;cd - 在最近两次目录间来回切换;cd ~/Downloads 切换到主目录下的 Downloads 子目录(前提是该目录存在)。另外,$OLDPWD 环境变量保存了上一次目录的路径,可用 cd $OLDPWD 实现与 cd - 相同的效果。
若目标目录包含空格或特殊字符(如通配符、括号、分号等),必须使用引号包裹路径,或使用反斜杠转义。例如切换到名为 My Documents 的目录:cd "My Documents" 或 cd My\ Documents。若路径包含变量(如 cd $HOME/project),shell 会先展开变量再执行切换。
在实际操作中,cd 命令还支持一些选项:cd -P 遵循物理路径(解析符号链接),cd -L 遵循逻辑路径(默认行为,保留符号链接)。例如,若 /tmp/link 是指向 /var/www 的符号链接,执行 cd -P /tmp/link 后,当前目录变为 /var/www;而 cd -L /tmp/link 则停留在 /tmp/link(即逻辑路径)。
需要注意,cd 命令只影响当前 shell 进程的工作目录。若在脚本中执行 cd,脚本结束后的父 shell 不会受影响,除非使用 source 或 . 命令执行脚本。对于需要频繁切换的目录,可借助 pushd、popd 命令管理目录栈,或使用 alias 定义快捷方式(如 alias doc='cd ~/Documents')。此外,现代终端(如 GNOME Terminal、Konsole)支持按 Tab 键自动补全路径,极大提升效率。
最后,验证是否切换成功,可执行 pwd(Print Working Directory)命令显示当前绝对路径。若目标目录不存在或无权限,cd 会返回非零退出码并输出错误信息(如 No such file or directory 或 Permission denied)。cd 是 Linux 文件系统导航的基础,掌握其用法是高效使用命令行的重要前提。

查看详情

查看详情