Linux下查找最近10分钟内修改的文件,核心命令为find,基础用法:find . -mmin -10 -type f,-mmin -10限定修改时间在10分钟内,-type f确保只查文件,实用技巧包括:结合-name过滤文件名(如-name "*.log"),用-exec处理结果(如-exec ls -lh {} \;查看详情),或通过管道与xargs`联动批量操作,此命令常用于日志分析、临时文件追踪等场景,灵活搭配参数可高效定位目标文件。
在Linux系统管理中,经常需要排查文件变更问题——比如查看某个目录下最近10分钟内被修改的配置文件、监控日志文件的实时更新,或是追溯异常操作留下的痕迹,本文将介绍几种常用方法,帮助您高效定位最近10分钟内被修改的文件,涵盖基础命令组合、高级工具及实用技巧。
核心命令:find + -mmin参数(最常用)
find是Linux中强大的文件查找工具,通过-mmin参数可直接按文件修改时间(分钟)筛选,是解决此类需求的首选。
基础用法
find /path/to/search -type f -mmin -10
/path/to/search:要搜索的目录路径(如/var/log、/etc),当前目录用表示,全系统用(需root权限);-type f:仅查找文件(排除目录、链接等);若需包含目录,可去掉-type f或改为-type d;-mmin -10:关键参数!-mmin表示按“修改时间(分钟)”筛选,-10表示“10分钟以内”(即当前时间减去10分钟之后修改的文件)。
实用扩展
显示文件完整路径(默认已支持)
find默认会输出文件的完整相对路径,若需绝对路径,可添加-print(默认行为)或结合-printf:

find /path -type f -mmin -10 -printf "%p\n" # %p表示完整路径
结合ls查看详细信息
若需查看文件的修改时间、权限等详细信息,可将结果通过管道传递给ls:
find /path -type f -mmin -10 | xargs ls -lt
xargs:将find的结果作为ls的参数;-lt:按修改时间降序排列(最新修改的文件在前)。
处理含空格/特殊字符的文件名
若文件名可能包含空格或特殊字符(如test file.txt),需用-print0和xargs -0避免解析错误:
find /path -type f -mmin -10 -print0 | xargs -0 ls -lt
进阶方法:stat + awk(灵活处理时间格式)
若需更灵活的时间格式(如显示“YYYY-MM-DD HH:MM:SS”),或需结合其他时间条件(如“10分钟~30分钟内修改”),可通过stat获取文件详细时间信息,再用awk筛选。
操作步骤
获取文件修改时间戳
stat命令可显示文件的详细状态,%Y表示“修改时间的时间戳(秒数)”:
stat -c "%Y %n" /path/to/file # 输出示例:1678886400 test.txt
%Y:修改时间的时间戳;%n:文件名。
计算时间阈值并筛选
通过date命令获取当前时间戳减去600秒(10分钟)的阈值,再用awk比较文件时间戳是否大于等于阈值:
# 获取10分钟前的时间戳
threshold=$(date -d "10 minutes ago" +%s)
# 查找并筛选
find /path -type f -exec stat -c "%Y %n" {} + | awk -v th="$threshold" '$1 >= th {print $2}'
date -d "10 minutes ago" +%s:计算当前时间减去10分钟的时间戳;awk -v th="$threshold":将阈值变量传递给awk;'$1 >= th {print $2}':比较文件时间戳($1)是否≥阈值,是则输出文件名($2)。
显示格式化修改时间
若需直接显示“人类可读”的时间格式(如2023-03-15 14:30:00),修改stat的输出格式:
threshold=$(date -d "10 minutes ago" +%s)
find /path -type f -exec stat -c "%Y %y %n" {} + | awk -v th="$threshold" '$1 >= th {print $2, $3}'
%y:修改时间的“YYYY-MM-DD HH:MM:SS”格式,输出示例:2023-03-15 14:30:00 test.txt。
实时监控:inotifywait(监控文件动态变化)
若需“实时监控”文件修改(而非查找历史记录),可使用inotifywait(来自inotify-tools工具包),它基于Linux内核的inotify机制,能高效监控文件系统事件。
安装`inotify-tools```
- Ubuntu/Debian:
sudo apt install inotify-tools - CentOS/RHEL:
sudo yum install inotify-tools - macOS(通过Homebrew):
brew install inotify-tools
基本用法
监控/path/to/dir目录下最近10分钟内被修改的文件(持续监控,按Ctrl+C退出):
inotifywait -m -r -e modify /path/to/dir

