使用find -mtime +30可安全清理30天前日志文件,需限定路径(如/var/log/)、加-type f和-name "*.log"等过滤,并先用-ls预览再-delete或xargs删除。

直接用 find 配合 -mtime +30 可精准定位并安全清理 30 天前的日志文件,关键在路径限定、类型过滤和执行前验证。
明确查找范围与日志特征
避免误删,先确认日志存放位置(如 /var/log/)和常见后缀(.log、.log.gz、.out 等)。不建议无差别扫描全系统,优先聚焦日志目录:
- 常用路径:
/var/log/、/var/log/nginx/、/var/log/apache2/、应用自定义日志目录(如/opt/app/logs/) - 加
-type f确保只匹配普通文件,跳过目录或符号链接 - 用
-name "*.log*"或-regex ".*\.\(log\|gz\|out\)$"过滤典型日志格式
安全预览:先查再删,避免误操作
执行删除前,务必先列出将被处理的文件,核对路径和时间是否合理:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
示例(查看 30 天前的 .log 文件):find /var/log -type f -name "*.log" -mtime +30 -ls
说明:
- -mtime +30 表示“修改时间超过 30×24 小时”,即最后修改时间早于 31 天前(注意:不是“恰好 30 天”,而是“大于 30 天”)
- -ls 显示详细信息(大小、权限、修改时间),比 -print 更直观
批量清理:推荐用 -delete 或 xargs 谨慎执行
确认预览无误后,可执行删除。两种可靠方式:
-
推荐用
-delete(简洁安全,要求 find 版本 ≥4.2.3):find /var/log -type f \( -name "*.log" -o -name "*.log.gz" -o -name "*.out" \) -mtime +30 -delete -
兼容旧版 find,用
xargs(加-I{}防空格问题):find /var/log -type f \( -name "*.log" -o -name "*.log.gz" \) -mtime +30 -print0 | xargs -0 rm -f
⚠️ 注意:
- 多条件用 \( ... \) 括起,括号需转义
- -print0 和 -0 组合可安全处理含空格或特殊字符的文件名
进阶建议:自动化与防误删
日常运维中,建议进一步加固流程:
- 加
-maxdepth 2限制搜索深度,避免递归过深(如只查/var/log下一级子目录) - 对重要日志(如
secure、messages)单独保留更久,可用! -name "secure"排除 - 写成脚本并加入
echo "[DRY RUN]"提示,首次运行注释掉删除命令,人工确认后再启用 - 配合
logrotate长期管理,find -mtime更适合作为补丁清理或临时任务










