Linux批量删除文件

在 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

  • 建议先 lsfind确认文件列表

  • 重要数据务必先备份


✅ 总结速查表

需求 命令
删某类文件 rm -f *.log
删 N 天前 find ... -mtime +N -delete
删大文件 find ... -size +100M -delete
删目录 rm -rf dir/
安全确认 rm -i *.log
相关推荐
DolitD16 分钟前
云流技术深度剖析:单服务器下如何实现3D应用的多实例并发?
java·服务器·前端·3d·云原生·云计算
jun_bai21 分钟前
Ecplise中发布项目到配置的tomcat中
java·服务器
芦柑46424 分钟前
画布和3D导演台工具:短剧分镜从素材整理到空间预演的完整链路
服务器·前端·数据库
闲云野鹤在人间33 分钟前
KVM虚拟化实战|CentOS‑Stream8 两种安装方式+模板制作+基础使用
linux·运维·服务器·centos
小张同学a.33 分钟前
Docker 容器实战 2—— docker 仓库
linux·运维·服务器·docker·容器
Android系统攻城狮1 小时前
Linux PipeWire深度解析之pw_core_get_registry调用流程与实战(九十一)
linux·运维·服务器·音频进阶·pipewire音频实战进阶
小义_1 小时前
JDK 深度解析
java·linux·开发语言·python·面试
邪修king1 小时前
Re:Linux 系统编程篇 (十二):进程篇(一)基础与 fork 系统调用全解
linux·运维·服务器
牢姐与蒯1 小时前
Linux进程(五).之环境变量
linux·运维·服务器·ubuntu
raindayinrain1 小时前
深入理解Linux内核--系统调用,性能优化
linux·性能优化·系统调用·返回值·入参·内核态用户态地址访问