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
查看手册。