rmdir 和 rm 是 Linux 系统中用于删除文件和目录的两个常用命令,但它们在功能和使用场景上有显著区别:
rmdir(Remove Directory)Directory not empty。bash
rmdir [选项] 目录名常用选项:
-p:递归删除父目录(仅当父目录也为空时)。rmdir -p a/b/c 会依次删除 c、b、a(如果它们均为空)。示例:
rmdir empty_folder # 删除空目录 empty_folder
rmdir -p a/b/c # 递归删除空目录链
rm(Remove)-r 选项递归操作。bash
rm [选项] 文件或目录名常用选项:
-r(或 -R):递归删除目录及其内容。-f:强制删除(忽略不存在的文件,不提示确认)。-i:交互式删除(每次删除前询问确认)。示例:
rm file.txt # 删除文件
rm -r folder # 递归删除目录(包括所有子文件和子目录)
rm -rf folder # 强制递归删除(无确认提示,谨慎使用!)
| 特性 | rmdir |
rm |
|---|---|---|
| 删除目标 | 仅空目录 | 文件或目录(无论是否空) |
| 递归删除 | 不支持(除非用 -p 删空父目录) |
需加 -r 选项 |
| 风险性 | 低(避免误删非空目录) | 高(可能误删重要数据) |
| 常用场景 | 确保目录为空时删除 | 强制删除任意文件或目录 |
rm -rf:该命令会直接删除目标且不可恢复,尤其在根目录(/)下误操作可能导致系统崩溃。rm -r 配合 -i 交互确认:
bash
rm -ri folder/ # 逐级确认删除ls 或 tree 确认目录内容。如有疑问,建议先通过 man rmdir 或 man rm 查看手册。