用 find 查最近七天内修改过的文件核心是 -mtime -7,表示7天内(不含当天)修改的文件,按24小时滚动计算;加 -daystart 可按日历日从零点起算;也可用 -mmin 精确到分钟。

用 find 查最近七天内修改过的文件,核心是用 -mtime -7 这个条件。
基本写法:-mtime -7 的含义和用法
-mtime -7 表示“7 天内(不含当天)修改过的文件”,即从现在往前推 7×24 小时以内修改过的文件。注意:
• - 表示“少于”,不是减号;
• 时间单位是“天”,按 24 小时滚动计算,不是按日历日期;
• 默认以当前时间为基准,不加 -daystart 时,可能跨日但不跨整日。
- 查找当前目录下所有最近 7 天修改的普通文件:
find . -type f -mtime -7 - 限定在
/var/log下找:find /var/log -type f -mtime -7 - 同时显示详细信息(类似 ls -l):
find /var/log -type f -mtime -7 -ls
更精确控制:用 -daystart 按日历日计算
如果希望从今天零点开始算起(比如 7 月 29 日 00:00 起),加上 -daystart:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
find . -daystart -type f -mtime -7→ 找 7 月 22 日 00:00 之后修改的文件 -
-daystart必须放在-mtime前面才生效,顺序很重要
按分钟查更细粒度:-mmin
如果需要精确到分钟(比如最近 120 分钟),用 -mmin:
-
find . -type f -mmin -120→ 找 2 小时内修改的文件 -
-mmin -5是最近 5 分钟,-mmin +60是 1 小时前修改的
常见组合与避坑提示
实际使用中常搭配其他条件避免误匹配:
- 只查文本类日志:
find /var/log -type f -name "*.log" -mtime -7 - 排除临时文件或缓存目录:
find /home -type f -mtime -7 ! -path "*/cache/*" ! -path "*/tmp/*" - 注意 shell 通配符干扰:文件名含
*或?时,记得用引号包裹-name参数 -
-mtime 0表示“过去 24 小时内”,不是“今天”,这点容易误解

















