12·文件管理入门

创建与删除目录

mkdirrmdir

第12课 - 创建与删除目录

学习目标

学完本课,你将能够:

  1. 熟练使用 mkdir 命令创建单个目录和递归创建多级目录。
  2. 理解 rmdir 命令的使用条件和局限性,并能安全删除空目录。
  3. 掌握删除非空目录的正确方法。
  4. 养成创建目录前检查、删除目录前确认的良好的系统管理习惯。

核心概念

在Linux系统中,目录(Directory)就是我们常说的“文件夹”,它是用来组织和存储文件及其他目录的容器。管理好目录结构是系统组织和运维的基础。

  • mkdir (Make Directory): 就像在桌面上新建一个文件夹。这个命令可以创建全新的目录。
  • rmdir (Remove Directory): 就像把一个空文件夹扔进回收站。这个命令只能删除空的目录,这是一个安全措施。
  • 递归操作 (-p, -r): 递归意味着“重复做同样的事直到完成”。
    • 对于 mkdir -p:一次性创建包含父目录在内的整个路径。例如,要创建 a/b/c,如果父目录 a/b 不存在,它会自动创建 ab
    • 对于 rm -r:递归删除一个目录及其内部的所有文件和子目录(非空目录删除)。

代码示例

1. 创建目录 (mkdir)

# 1. 创建一个名为 `my_project` 的目录
mkdir my_project
ls -ld my_project # 使用 ls -d 查看目录本身信息

# 2. 同时创建多个目录
mkdir docs images scripts

# 3. 递归创建多级目录:在 scripts 目录下创建 python 和 bash 子目录
#    即使 scripts 目录已存在,`-p` 也不会报错。
mkdir -p scripts/python scripts/bash
tree scripts # 使用 tree 命令查看目录结构(如果未安装,可用 `ls -R scripts`)

# 4. 创建目录时指定权限(使用数字模式)
#    755 表示:所有者(rwx=7)、同组(r-x=5)、其他(r-x=5)
mkdir -m 755 public_share
ls -ld public_share

2. 删除目录 (rmdirrm -r)

# 1. 尝试用 rmdir 删除一个非空目录 (会失败)
mkdir test_dir && touch test_dir/file.txt
rmdir test_dir  # 错误:目录非空

# 2. 先清空目录内容,再用 rmdir 删除
rm test_dir/file.txt  # 先删除里面的文件
rmdir test_dir       # 现在可以删除空目录了

# 3. 直接使用 `rm -r` 删除非空目录(包括其中的所有文件)
#    **警告:`rm -rf` 命令非常强大且危险,请务必谨慎使用!**
mkdir -p project/src && touch project/src/main.py
tree project
rm -r project # 会提示是否删除每个文件,输入 y 确认
# 或者使用 `rm -rf` 强制删除(不再提示),生产环境慎用!
# rm -rf project

# 4. 交互式删除:更安全的做法
mkdir -p backup_2024 && touch backup_2024/data.tar.gz
rm -ri backup_2024 # `-i` 选项会在每个操作前询问,安全!

实践练习

练习1:基础创建

  1. 在你的主目录 (~) 下,创建一个名为 linux_study 的目录。
  2. linux_study 目录下,一次性创建两个子目录:week1week2
  3. 预期输出:
    $ ls -R ~/linux_study
    /home/yourusername/linux_study:
    week1  week2
    

练习2:路径创建

  1. 创建一个完整的目录路径:~/reports/2024/financial/q3。确保即使父目录 reports/2024/financial 不存在,也能成功创建 q3 目录。
  2. 使用 ls -R ~/reports 命令验证。
  3. 预期输出:
    $ ls -R ~/reports
    /home/yourusername/reports:
    2024
    
    /home/yourusername/reports/2024:
    financial
    
    /home/yourusername/reports/2024/financial:
    q3
    

练习3:安全删除

  1. ~/linux_study 目录下创建目录 temp_files
  2. temp_files 中创建几个文件。
  3. 尝试使用 rmdir 删除 temp_files,观察结果。
  4. 使用 rm -irm -ri 命令安全地删除 temp_files 及其内容。
  5. 最后,删除之前创建的 ~/reports 整个目录树。

常见错误

  1. 忽略 -p 选项: 当尝试创建 a/b/c 而父目录 ab 不存在时,直接使用 mkdir a/b/c 会失败。解决方案:始终使用 mkdir -p 来创建深层路径。
  2. 对非空目录使用 rmdirrmdir 只能删除空目录。这是为了防止误删。如果你想删除一个非空目录,请使用 rm -rrm -ri
  3. 危险使用 rm -rfrm -rf /rm -rf * 可以瞬间毁掉你的系统。永远、永远不要在不确定目录位置的情况下运行带 -rf 的删除命令,尤其是当路径中包含变量时(如 $HOME)。使用 rm -ri 进行交互式删除是更安全的选择。
  4. 在错误的目录下操作: 执行删除命令前,使用 pwd 命令确认当前所在目录,再用 ls 查看将要操作的内容。

小结

本节课我们学习了管理Linux目录结构的两个核心操作:

  • 创建目录 (mkdir)
    • mkdir 目录名:创建单个目录。
    • mkdir -p 目录/路径:递归创建多级目录路径,是最常用的创建方式。
  • 删除目录 (rmdirrm -r)
    • rmdir 目录名:仅删除空目录,安全但功能有限。
    • rm -r 目录名:递归删除目录及其全部内容,功能强大。
    • 最佳实践:使用 rm -ri 进行交互式删除,可以有效防止误操作。

记住:mkdir -p 创建,rm -ri 删除。 养成良好的目录命名和清理习惯,是高效管理Linux系统的第一步。下一课我们将学习使用 touch, cat, less 等命令来创建和查看文件内容。

练习编辑器

rust
Loading...

继续学习

完成本课后,建议继续学习下一课「touch、cat、less 与文件查看」 以巩固所学知识。