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
相关推荐
web守墓人7 小时前
【go语言】gotar:使用go语言复刻tar命令,并加入7z支持,可独立运行在windows、linux、macos上
linux·macos·golang
就牙白7 小时前
中科方德服务器打包RPM
linux·python
Tizzgod8 小时前
W55MH32 开箱分享 — 一块板子同时连俩TCP服务器
服务器·网络协议·tcp/ip
REDcker8 小时前
基于 eBPF 的网络可观测:协议栈路径与 sk_buff
linux·服务器·网络·php·ebpf·bpf
看-是灰机8 小时前
使用go语言实现对接
linux·开发语言·后端·docker·语言模型·golang·飞书
草莓熊Lotso8 小时前
【Linux网络】深入理解Linux IO多路复用:从本质到select服务器实战
linux·运维·服务器·c语言·网络·数据库·c++
fen_fen8 小时前
麒麟 Linux aarch64安装.NET 6,并适配.net应用(达梦数据库)
linux·服务器·.net
fen_fen8 小时前
Filebeat 采集 应用日志部署 & Kibana 查询操作文档
linux·运维·服务器
苏宸啊8 小时前
linux线程池
linux