做什么
删除文件或目录。Linux 没有回收站,删了就没了。
常用参数
| 参数 | 含义 |
|---|---|
-r / -R |
递归删除目录 |
-f |
强制(不问 + 不报错文件不存在) |
-i |
每个文件问一次 |
-I |
删 3 个以上 / 递归时问一次 |
-v |
显示过程 |
-d |
删空目录(等同 rmdir) |
实战
rm file.txt
rm *.tmp # 通配符
rm -r folder # 删目录
rm -rf folder # 强制递归(小心)
rm -i *.txt # 每个问一次
rm -I *.txt # 全部问一次(友好)
⚠ 终极灾难
rm -rf / # 删整个系统(多数 rm 现在拒绝 / 加 --no-preserve-root 才行)
rm -rf $UNSET_VAR/* # 变量未定义 → rm -rf /* → 灾难
永远在跑 rm -rf 前看清路径。建议:
# 1. 先 ls 确认
ls /path/to/delete
# 2. 用 set -u 防止变量未定义
set -u
rm -rf "$dir"/* # $dir 没定义会报错而不是删根
# 3. 给 root 加保护
alias rm='rm -I --preserve-root'
找回?
ext4 / xfs 都没有"恢复站" — 真删了就要靠:
- 备份(必须有)
- 文件系统级 undelete 工具(如
extundelete)—— 但只能在没继续写的情况下 - 商业数据恢复(贵 + 不一定行)
最佳防御 = 备份。生产数据库 + 重要目录 = 每天异地备份。