当前位置:首页>Linux>linux查找指定时间前的文件并删除

linux查找指定时间前的文件并删除

  • 2026-09-22 11:57:14
linux查找指定时间前的文件并删除
01 需求背景

在 Linux 服务器运维和开发过程中,“定时清理过期文件”是一个非常常见但又容易被忽视的需求。典型场景包括:

  • 日志文件堆积:应用每天产生大量 .log 文件,长期不清理会占满磁盘,影响服务稳定性。

  • 临时文件残留:程序运行过程中生成的 /tmp 临时文件、缓存文件,任务结束后未及时释放。

  • 备份文件管理:数据库或代码备份按天/周生成,只希望保留最近一段时间的数据,历史备份需要自动淘汰。

如果不做清理,轻则磁盘告警,重则导致服务宕机。手动删除既低效又容易误删,因此通过命令或脚本自动化查找并删除“某个时间点之前”的文件,是 Linux 日常运维的必备技能。
02 解决思路
linux系统中,每个文件都有三类时间戳:
  • mtime(Modification Time):文件内容最后修改时间(最常用)

  • atime(Access Time):文件最后被访问的时间

  • ctime(Change Time):文件元数据(权限、属主等)最后变更时间

查看文件时间:stat filename

我们清理文件时,90% 的场景都推荐使用 mtime,因为它最能反映文件是否“过期”。

需要结合以下两个核心命令:

•find:按条件查找文件

•rm:删除文件(配合 -delete 或 -exec 或 xargs)

03 具体操作示例
1. 查找7天前修改的文件并删除
find /var/log -type f -mtime +7  -delete# 删除也可以 -exec find /var/log -type f -mtime +7 -exec rm -rf {} \;# 或者find /var/log -type f -mtime +7 |xargs rm -rf 
参数说明:
  • /var/log:目标目录
  • -type f:只查普通文件(排除目录)
  • -mtime +7:7天前(修改时间在7*24小时之前)
2. 查找60分钟前修改的文件
find /var/log -type f -mmin +60 -delete
3. 限制文件类型,如只查.log文件
find /var/log -name "*.log" -type f -mtime +30 -delete 
4. 查找并删除空目录
find /var -type d -empty -delete

如果本文对你有帮助,欢迎“点赞”、“分享”、“推荐”,也欢迎在留言区互动,感谢!
点关注,一起成长!

最新文章

随机文章