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

  • 建议先 ls或 find确认文件列表

  • 重要数据务必先备份


✅ 总结速查表

需求 命令
删某类文件 rm -f *.log
删 N 天前 find ... -mtime +N -delete
删大文件 find ... -size +100M -delete
删目录 rm -rf dir/
安全确认 rm -i *.log
相关推荐
HideF9 小时前
Linux
linux·服务器·网络
Ruiery11 小时前
Linux 6.6内核内存管理深度解析(十三):slab/slub 分配器
linux·运维·服务器
乌恩大侠11 小时前
从 AI-RAN 到 AI Agent:基于 NVIDIA Nemotron 构建 5G/6G 智能网络故障诊断系统
服务器·人工智能·5g·o-ru·ai-ran·电信大模型
丰锋ff13 小时前
压缩命令笔记
linux
迪菲赫尔曼13 小时前
【基础篇 11】把官方源码放到服务器:版本、解压层级和安装位置,一次弄清楚
运维·服务器·开发语言·人工智能·python·yolo·目标检测
GeW15 小时前
产业新优势基础软件的人才底盘,从Linux与数据库开始
linux·数据库
by2099915 小时前
Linux GCC/G++ 编译与 Makefile 构建
linux·运维·服务器·经验分享
迪菲赫尔曼15 小时前
【基础篇 12】把环境与源码接起来:检查 GPU,再安装服务器上的项目
运维·服务器·开发语言·人工智能·python·yolo·目标检测
cq林志炫15 小时前
两个Linux服务器之间同步文件
linux·运维·服务器
yyuuuzz16 小时前
云服务器安全组规则优先级的机制记录
运维·服务器·网络·安全·阿里云·aws