Linux基本指令篇 —— cd指令

    cd 是 Linux 和 Unix 系统中最基础且使用频率最高的命令之一,全称 Change Directory(切换目录)。它的功能是改变当前工作目录。以下是关于 cd 的详细解析:


目录

0.前言

Linux理论知识:路径的认识

1. 基本用法

常见操作示例

1)cd ../(切换到上级目录(父目录))

2)cd 绝对路径 (切换到绝对路径指定的目录)

3)cd 相对路径 (使用相对路径改变当前工作目录)

4)cd ~ (切换到当前用户的家目录,~是家目录的简写)

5)cd - (切换到上一次所在的目录(类似“返回”功能))

6)cd ../../ (切换到上两级目录。)

7) cd ./subdir (切换到当前目录下的子目录(./ 可省略))

2. 特殊符号与路径处理

举个栗子: 

目标:从 /home/hmz 快速进入 mydir

操作步骤:

3. 常见问题与技巧

Q1: 目录名有空格或特殊字符怎么办?

Q2: 如何快速切换到家目录的子目录?

4. 环境变量关联

5. 脚本中的注意事项

6. 扩展技巧

快速切换高频目录

结合 find 跳转到模糊匹配的目录(选学)


0.前言

Linux理论知识:路径的认识

  • Linux系统中,磁盘上的文件和目录被组成一棵目录树,每个节点都是目录或文件。
  • 其中普通文件一定是目录树的叶子节点。
  • 目录可能是叶子(空目录),也可能是路上节点。
  • 理解路径存在的意义:树状组织方式,都是为了保证快速定位查找到指定的文件,而定位文件就需要具有唯一性的方案来进行定位文件。其中任何一个节点,都只有一个父节点,所以,从根目录开始,定位指定文件,路径具有唯一性。
  • 绝对路径:一般从/开始,不依赖其他目录的定位文件的方式。
  • 相对路径:相对于当前用户所处目录,定位文件的路径方式。
  • 绝对路径一般不会随着用户的路径变化而丧失唯一性,一般在特定服务的配置文件中经常被使用。
  • 相对路径因为它的便捷性,一般在命令行中使用较多。


1. 基本用法

功能:改变工作目录。将当前工作目录改变到指定的目录下。

语法:

cd [目录路径]
  • 如果省略 目录路径,默认切换到当前用户的家目录HOME 环境变量指定的目录)。

常见操作示例

1)cd ../(切换到上级目录(父目录))

2)cd 绝对路径 (切换到绝对路径指定的目录)

3)cd 相对路径 (使用相对路径改变当前工作目录)

4)cd ~ (切换到当前用户的家目录,~是家目录的简写

注意操作系统中的普通用户家目录默认为 /home/xxx,root用户家目录默认为 /root。

5)cd - (切换到上一次所在的目录(类似“返回”功能))

6)cd ../../ (切换到上两级目录。)

7) cd ./subdir (切换到当前目录下的子目录(./ 可省略))


2. 特殊符号与路径处理

符号说明
.当前目录(通常可省略,如 cd ./dir 等价于 cd dir)。
..上级目录(父目录)。
~当前用户的家目录(如 ~ubuntu 表示用户 ubuntu 的家目录)。
-上一次的工作目录(通过 OLDPWD 环境变量记录)。
*通配符(需结合 Tab 补全使用,如 cd D* 进入第一个匹配的目录(匹配以 D 开头的目录))。

举个栗子: 

目标:从 /home/hmz 快速进入 mydir

cd m*     # 自动匹配第一个以 m 开头的目录(mydir)
  • 如果 m* 只匹配到 mydir,会直接进入。

  • 如果还有 musicmmmdir等目录,则会出现下面这种情况:

    若想要查找对应所需的目录,则需用 Tab 补全选择(重新跟着下面步骤来一遍)。

操作步骤:

  1. 输入 cd m,然后按 Tab

  2. 系统会显示所有以 m 开头的目录(如 mydir/music/)。

  3. 继续输入 y 变成 cd my,再按 Tab 自动补全为 cd mydir/

  4. 按回车进入。


3. 常见问题与技巧

Q1: 目录名有空格或特殊字符怎么办?

  • 用引号包裹路径,或使用转义符 \

    cd "My Documents"   # 正确
    cd My\ Documents    # 正确
    cd My Documents     # 错误(会被解析为两个参数)

Q2: 如何快速切换到家目录的子目录?

  • 直接使用缩写~/[目录]:


4. 环境变量关联

  • $HOME:用户家目录路径(cd 无参数时默认值)。

  • $OLDPWD:记录上一次的目录(cd - 依赖此变量)。

  • $PWD:当前目录路径(可通过 echo $PWD 查看,类似 pwd 命令)。

示例


5. 脚本中的注意事项

  • 脚本中建议使用绝对路径:避免因工作目录变化导致路径错误。

    # 推荐写法
    cd /opt/app || exit 1  # 如果切换失败则退出脚本
  • 错误处理:检查目录是否存在:

    if [ -d "/path/to/dir" ]; then  # 检查 "/path/to/dir" 是否存在且是一个目录
        cd "/path/to/dir"           # 如果存在,则切换到该目录
    else
        echo "目录不存在!"         # 如果不存在,输出错误信息
    fi

1. if [ -d "/path/to/dir" ]; then

  • [ -d "/path/to/dir" ]

    • [ ... ] 是 Bash 的条件测试语法(等同于 test ...)。

    • -d 是测试运算符,用于检查 路径是否存在且是一个目录

    • "/path/to/dir" 是要检查的目标路径(需替换为实际路径)。

  • ; then

    • 表示如果条件成立(目录存在),则执行后续代码块。

2. cd "/path/to/dir"

  • 如果条件成立(目录存在),则执行 cd 切换到该目录。

  • 路径用双引号包裹,防止因空格或特殊字符导致错误。

3. else

  • 如果条件不成立(目录不存在),则执行 else 部分的代码。

4. echo "目录不存在!"

  • 输出错误提示信息,告知用户目录不存在。

5. fi

  • 结束 if 条件语句块。


6. 扩展技巧

快速切换高频目录

  • 使用 pushd 和 popd 管理目录栈:

    pushd /tmp     # 进入 /tmp 并记录目录
    pushd /var/log # 进入 /var/log 并记录

    popd           # 返回上一个目录(/tmp)
    popd           # 返回最初目录

结合 find 跳转到模糊匹配的目录(选学)

cd $(find / -type d -name "project*" 2>/dev/null | head -n 1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值