查最近修改的文件应使用-mtime或-mmin而非-ctime,因mtime反映内容修改而非元数据变更;-mtime -1表示24小时内修改,-mmin -5表示5分钟内修改;大目录用-mmin需防卡顿,可加timeout;非递归查看用ls -lt更高效;排序应结合stat或xargs -0避免管道误用。

按天查:-mtime 最常用也最稳
-mtime 的数字不是“几天前”,而是“落在哪个 24 小时区间”:
- -mtime -1:过去 24 小时内(0~24 小时)修改的文件
- -mtime 0:等价于 -mtime -1,也是 24 小时内
- -mtime 1:恰好 24~48 小时前修改的文件
- -mtime +1:超过 48 小时前(即 >48 小时)修改的文件
示例:查 /var/log 下昨天以来的所有日志文件
find /var/log -type f -name "*.log" -mtime -1按分钟查:-mmin 更准,但要防卡顿
当需要“刚改完就抓到”,比如调试脚本或监控临时文件,-mtime -1 可能漏掉最后几分钟的改动。这时用 -mmin:
- -mmin -5:5 分钟内修改的文件
- -mmin -60:1 小时内修改的文件
注意:-mmin 对每个文件都读秒级时间戳,大目录(如 /var/log 下百万小文件)容易卡顿。建议加 timeout 防死锁:
只看当前目录?用 ls -lt 更快
如果不需要递归,只是快速扫一眼当前目录最新改了啥,ls 比 find 轻量得多:
- ls -lt:按修改时间倒序,最新在最上面
- ls -lta:加上隐藏文件
- ls -ltL:穿透软链接,看目标文件的真实修改时间
注意:ls 不进子目录,也不支持时间范围筛选,纯属“一眼快览”。
找完还要排序?别管道 ls,用 stat + sort
find 本身不排序,但常需“先筛再排”。错误写法:find ... | ls -lt(ls 不会处理管道里的路径)。正确做法:
- 用 stat 提取完整时间戳 + sort,精度到秒:
- 用 print0 + xargs -0 + ls -lt,兼顾空格路径和可读性:


















