在 Linux 中,批量删除文件有多种方式,具体取决于你要删除的文件类型、范围以及是否需要强制删除。以下是几种常见且高效的批量删除方法:
一、使用 rm命令(最常用)
1️⃣ 删除某一类文件(如 .log)
rm -f *.log
✅ 说明:
-
*是通配符 -
-f强制删除,不提示
2️⃣ 删除多个指定类型文件
rm -f *.log *.txt *.bak
3️⃣ 删除某个目录下所有文件(⚠️危险)
rm -f /path/to/dir/*
⚠️ 注意:这只会删除文件,不会删除子目录。
二、按条件删除(推荐 ✅)
4️⃣ 删除 N 天前的文件(日志清理常用)
find /path/to/logs -type f -mtime +7 -name "*.log" -delete
✅ 解释:
-
-type f:只删文件 -
-mtime +7:7 天前 -
-name "*.log":匹配日志文件 -
-delete:直接删除
🔍 建议先查看匹配结果(不删除):
find /path/to/logs -type f -mtime +7 -name "*.log"
5️⃣ 删除大于 100M 的文件
find /path/to/dir -type f -size +100M -delete
三、交互式删除(防止误删 ✅)
6️⃣ 删除前逐一确认
rm -i *.log
四、删除目录及其下所有文件(⚠️非常危险)
7️⃣ 删除整个目录
rm -rf /path/to/dir
⚠️ 务必确认路径正确,删除后无法恢复!
五、结合 ls查看再删除(安全做法 ✅)
ls *.log
rm *.log
六、使用 rsync清空目录(高级技巧)
如果你想清空目录但保留目录本身:
rsync -a --delete empty/ target/
七、推荐的安全清理日志方式 ✅
find /var/www/web/storage/logs -type f -name "*.log" -mtime +7 -delete
✅ 适用于 Lumen / Laravel 日志清理
⚠️ 重要提醒
-
生产环境慎用
rm -rf -
建议先
ls或find确认文件列表 -
重要数据务必先备份
✅ 总结速查表
| 需求 | 命令 |
|---|---|
| 删某类文件 | rm -f *.log |
| 删 N 天前 | find ... -mtime +N -delete |
| 删大文件 | find ... -size +100M -delete |
| 删目录 | rm -rf dir/ |
| 安全确认 | rm -i *.log |