在我们日常的linux运维中,日志排查、文件清理中按时间段精准定位文件是高频刚需。无论是找近1小时修改的日志、3天内新增的配置,还是指定日期区间的业务文件,掌握find命令的时间筛选逻辑,就能告别盲目翻找,高效定位目标文件。
这篇文章我从时间概念、基础命令、精确时间段、组合筛选、实战脚本、避坑要点全维度拆解,新人也能直接复制使用。
find命令通过时间参数结合符号实现相对时间查找,单位分天(time)和分钟(min),符号规则:
-n:n时间内(如-7=7天内、-60=60分钟内)n:恰好n时间(如7=刚好7天前)#1.查找/var/log下7天内修改的所有文件find /var/log -type f -mtime -7#2.查找/home下30天前访问的文件find /home -type f -atime +30#3.查找/etc下大于1天前状态变更的文件(实际为 ≥24h并且<48h)find /etc -type f -ctime +1



#1.查找当前目录下1小时内修改的文件find . -type f -mmin -60#2.查找/opt下2小时前未访问的文件find /opt -type f -amin +120#3.查找/data/ceshi下30分钟内状态改变的文件find /data/ceshi -type f -cmin -30

-type f只查文件,排除目录,结果更清爽。-newermt参数,也是我们日常使用最多的。find 路径 -type f -newermt "起始时间" ! -newermt "结束时间"!表示非,即 “早于结束时间”YYYY-MM-DD 或 YYYY-MM-DD HH:MM:SS#1.查找2026-08-07当天修改的文件find /data -type f -newermt "2026-08-07" ! -newermt "2026-08-08"#2.查找2026-08-07 09:00 至 2026-08-07 21:00的日志文件find /var/log/nginx -type f -newermt "2026-08-07 09:00" ! -newermt "2026-08-07 21:00"#3.查找今天10:00-21:00新增的文件find . -type f -newermt "10:00" ! -newermt "21:00"

find /data/backup -type f -mtime +10 -mtime -30
#1.查找/var/log下7天内、大于1M的.log日志find /var/log -type f -name "*.log" -mtime -7 -size +1M#2.查找/data/config_bak下10天内、属主为root的.conf配置文件find /data/config_bak/ -type f -name "*.conf" -mtime -10 -user root#3.查找/tmp下1小时内、权限为644的临时文件find /data -type f -mmin -60 -perm 644

#导出7天内修改的日志路径到log_list.txtfind /var/log -type f -mtime -7 > /root/log_list.txt

#第一步:先查看30天前的.log文件(确认无误再删)find /var/log -type f -name "*.log" -mtime +30#第二步:执行删除find /var/log -type f -name "*.log" -mtime +30 -delete

-delete执行预览,避免误删!#统计2026-08-07当天修改的文件数find /data/ceshi -type f -newermt "2026-08-07" ! -newermt "2026-08-08" |wc -l

find / -xdev -type f -mtime -7-newermt兼容性:主流 Linux(centos7+/ubuntu16+)都支持,老系统用-newer结合时间文件替代。find命令是linux文件查找的 “瑞士军刀”,按时间段查找的核心就是分清时间戳、记准参数符号、用好-newermt。无论是日常日志排查、定期文件清理,还是应急故障定位,掌握这套方案,就能快速定位目标文件,提升运维效率。还有一种是转换成时间戳进行查询的命令,后期在详细介绍。