第12课 - 创建与删除目录
学习目标
学完本课,你将能够:
- 熟练使用
mkdir命令创建单个目录和递归创建多级目录。 - 理解
rmdir命令的使用条件和局限性,并能安全删除空目录。 - 掌握删除非空目录的正确方法。
- 养成创建目录前检查、删除目录前确认的良好的系统管理习惯。
核心概念
在Linux系统中,目录(Directory)就是我们常说的“文件夹”,它是用来组织和存储文件及其他目录的容器。管理好目录结构是系统组织和运维的基础。
mkdir(Make Directory): 就像在桌面上新建一个文件夹。这个命令可以创建全新的目录。rmdir(Remove Directory): 就像把一个空文件夹扔进回收站。这个命令只能删除空的目录,这是一个安全措施。- 递归操作 (
-p,-r): 递归意味着“重复做同样的事直到完成”。- 对于
mkdir -p:一次性创建包含父目录在内的整个路径。例如,要创建a/b/c,如果父目录a/b不存在,它会自动创建a和b。 - 对于
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. 删除目录 (rmdir 和 rm -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:基础创建
- 在你的主目录 (
~) 下,创建一个名为linux_study的目录。 - 在
linux_study目录下,一次性创建两个子目录:week1和week2。 - 预期输出:
$ ls -R ~/linux_study /home/yourusername/linux_study: week1 week2
练习2:路径创建
- 创建一个完整的目录路径:
~/reports/2024/financial/q3。确保即使父目录reports/2024/financial不存在,也能成功创建q3目录。 - 使用
ls -R ~/reports命令验证。 - 预期输出:
$ ls -R ~/reports /home/yourusername/reports: 2024 /home/yourusername/reports/2024: financial /home/yourusername/reports/2024/financial: q3
练习3:安全删除
- 在
~/linux_study目录下创建目录temp_files。 - 在
temp_files中创建几个文件。 - 尝试使用
rmdir删除temp_files,观察结果。 - 使用
rm -i或rm -ri命令安全地删除temp_files及其内容。 - 最后,删除之前创建的
~/reports整个目录树。
常见错误
- 忽略
-p选项: 当尝试创建a/b/c而父目录a或b不存在时,直接使用mkdir a/b/c会失败。解决方案:始终使用mkdir -p来创建深层路径。 - 对非空目录使用
rmdir:rmdir只能删除空目录。这是为了防止误删。如果你想删除一个非空目录,请使用rm -r或rm -ri。 - 危险使用
rm -rf:rm -rf /或rm -rf *可以瞬间毁掉你的系统。永远、永远不要在不确定目录位置的情况下运行带-rf的删除命令,尤其是当路径中包含变量时(如$HOME)。使用rm -ri进行交互式删除是更安全的选择。 - 在错误的目录下操作: 执行删除命令前,使用
pwd命令确认当前所在目录,再用ls查看将要操作的内容。
小结
本节课我们学习了管理Linux目录结构的两个核心操作:
- 创建目录 (
mkdir):mkdir 目录名:创建单个目录。mkdir -p 目录/路径:递归创建多级目录路径,是最常用的创建方式。
- 删除目录 (
rmdir和rm -r):rmdir 目录名:仅删除空目录,安全但功能有限。rm -r 目录名:递归删除目录及其全部内容,功能强大。- 最佳实践:使用
rm -ri进行交互式删除,可以有效防止误操作。
记住:mkdir -p 创建,rm -ri 删除。 养成良好的目录命名和清理习惯,是高效管理Linux系统的第一步。下一课我们将学习使用 touch, cat, less 等命令来创建和查看文件内容。
练习编辑器
rust
Loading...