Linux常用命令学习笔记:cd

1. 命令概述

  • 命令名称cd(英文全拼:change directory)
  • 核心功能切换当前工作目录
  • 主要用途:在文件系统中导航,改变当前工作目录
  • 特点:最常用的Linux命令之一,无参数时切换到用户主目录

2. 语法格式

cd [选项] [目录]

3. 常用选项

选项说明
-P使用物理路径,不跟随符号链接
-L使用逻辑路径,跟随符号链接(默认)
--help显示帮助信息
--version显示版本信息

4. 基本操作

(1) 切换目录

# 切换到指定目录
cd /path/to/directory

# 切换到用户主目录
cd
cd ~

# 切换到上一级目录
cd ..

# 切换到上两级目录
cd ../..

# 切换到根目录
cd /

# 切换到当前目录(无实际效果)
cd .

(2) 相对路径操作

# 切换到子目录
cd subdir

# 切换到父目录的子目录
cd ../otherdir

# 切换到兄弟目录
cd ../sibling

# 切换到当前目录的父目录
cd ..

# 切换到根目录下的目录
cd /etc

(3) 特殊路径操作

# 切换到用户主目录
cd ~

# 切换到其他用户的主目录
cd ~username

# 切换到上次所在的目录
cd -

# 切换到环境变量指定的目录
cd $HOME

# 切换到当前目录(刷新目录)
cd .

5. 常用实例详解

(1) 基本目录切换

# 切换到根目录
cd /

# 切换到etc目录
cd /etc

# 切换到用户主目录
cd ~

# 切换到当前用户的主目录
cd $HOME

# 切换到其他用户的主目录
cd ~root

# 切换到上次所在的目录
cd -

(2) 相对路径切换

# 假设当前在 /home/user
cd Documents  # 切换到 /home/user/Documents

cd ..         # 切换到 /home

cd ../..      # 切换到 /

cd ../other   # 切换到 /home/other

cd ./subdir   # 切换到 /home/user/subdir

cd ../../etc  # 切换到 /etc

(3) 绝对路径切换

# 切换到绝对路径
cd /usr/local/bin

# 切换到用户主目录下的目录
cd ~/Documents

# 切换到其他用户的主目录下的目录
cd ~root/Documents

# 切换到环境变量指定的目录
cd $HOME/Documents

# 切换到当前目录的绝对路径
cd $(pwd)

(4) 符号链接处理

# 创建符号链接
ln -s /path/to/target linkname

# 切换到符号链接(跟随链接)
cd linkname

# 切换到符号链接的实际路径
cd -P linkname

# 切换到符号链接的父目录
cd linkname/..

# 切换到符号链接的上级目录
cd ../linkname

6. 实际应用场景

场景一:日常目录导航

# 快速回到主目录
cd

# 切换到工作目录
cd /path/to/workdir

# 切换到项目目录
cd ~/projects/myproject

# 切换到配置目录
cd /etc

# 切换到日志目录
cd /var/log

# 切换到临时目录
cd /tmp

场景二:脚本中的目录切换

#!/bin/bash

# 保存当前目录
CURRENT_DIR=$(pwd)

# 切换到工作目录
cd /path/to/workdir

# 执行操作
ls -l

# 返回原目录
cd "$CURRENT_DIR"

场景三:目录栈操作

# 将目录压入栈
pushd /path/to/dir1

# 切换到另一个目录
pushd /path/to/dir2

# 查看目录栈
dirs

# 切换到栈顶目录
popd

# 切换到栈中指定目录
pushd +N

场景四:环境变量使用

# 使用环境变量切换目录
cd $HOME

# 使用自定义环境变量
export MYDIR=/path/to/my/dir
cd $MYDIR

# 使用命令替换
cd $(dirname $(which ls))

# 使用历史命令
cd !$

# 使用通配符
cd /usr/local/*/bin

7. 与其他命令的区别

命令特点适用场景
cd切换当前工作目录目录导航
pwd显示当前工作目录查看当前路径
ls列出目录内容查看文件列表
pushd将目录压入栈目录栈管理
popd从栈中弹出目录目录栈管理

8. 注意事项

  1. 目录存在性:目标目录必须存在,否则会报错
  2. 权限问题:必须有目录的执行权限才能进入
  3. 符号链接:默认跟随符号链接,使用 -P选项不跟随
  4. 相对路径:相对路径相对于当前工作目录
  5. 环境变量:可以使用环境变量作为目录路径

9. 常见问题解决

(1) 目录不存在

# 错误:目录不存在
cd /nonexistent/dir  # 报错:No such file or directory

# 正确:检查目录是否存在
ls -d /path/to/dir

# 正确:创建目录后进入
mkdir -p /path/to/dir && cd /path/to/dir

# 正确:使用通配符
cd /usr/local/*/bin

(2) 权限不足

# 错误:权限不足
cd /root  # 报错:Permission denied

# 正确:使用sudo
sudo cd /root  # 注意:sudo cd 无效

# 正确:切换到有权限的目录
cd /tmp

# 正确:使用其他用户
su - username
cd /path/to/dir

# 正确:修改目录权限
sudo chmod +x /path/to/dir
cd /path/to/dir

(3) 符号链接问题

# 错误:符号链接指向不存在的目录
cd broken_link  # 报错:No such file or directory

# 正确:检查符号链接
ls -l linkname

# 正确:修复符号链接
ln -sf /path/to/target linkname

# 正确:使用绝对路径
cd /path/to/target

# 正确:使用物理路径
cd -P linkname

(4) 特殊字符处理

# 目录名包含空格
cd "dir with spaces"

# 目录名包含特殊字符
cd dir\ with\ spaces

# 目录名包含引号
cd 'dir with "quotes"'

# 目录名包含变量
cd "$HOME/Documents"

# 目录名包含命令替换
cd "$(dirname "$0")"

核心要点总结

  • cd是切换当前工作目录的命令,是Linux系统中最常用的命令之一
  • 常用操作cd(切换到主目录)、cd ..(切换到上一级目录)、cd -(切换到上次目录)
  • 实际应用:日常目录导航、脚本中的目录切换、目录栈管理
  • 注意事项:目录必须存在且有执行权限,符号链接默认跟随,可以使用环境变量

cd命令是Linux文件系统导航的基础工具,熟练掌握可以大大提高工作效率。


作 者:南烛
链 接:https://www.itnotes.top/archives/451
来 源:IT笔记
文章版权归作者所有,转载请注明出处!


上一篇
下一篇