要确认文件最后一次内容修改时间,可用ls -l查看mtime、stat命令精确获取(%y可读格式,%y unix时间戳)、find按-mtime筛选(如-mtime 0查24小时内),并支持find与stat联合验证。

如果您需要确认某个文件最后一次被内容修改的时间,或希望按时间条件筛选出特定范围内的文件,则需准确理解并使用Linux中与时间戳相关的命令。以下是实现该目标的具体方法:
一、使用ls命令查看文件最后修改时间
ls -l 命令默认显示的是文件的 mtime(modification time),即文件内容最后一次被修改的时间,适用于快速查看单个或多个文件的最近修改时间。
1、在终端中输入 ls -l filename,其中 filename 替换为实际文件名。
2、输出结果中第6至第8列即为最后修改时间,格式为“月 日 时:分”或“月 日 年”,取决于文件修改距今是否超过6个月。
3、若需强制以统一格式显示(如年-月-日 时:分:秒),可先执行 export TIME_STYLE='+%Y-%m-%d %H:%M:%S',再运行 ls -l filename。
二、使用stat命令精确获取mtime时间戳
stat 命令可直接输出文件的三类时间戳,并支持格式化输出,其中 %y 对应人类可读的 mtime,%Y 对应 Unix 时间戳(秒级),便于脚本处理或跨时区比对。
1、输入 stat -c '%y' filename 获取带时区的 mtime 可读格式(例如:2026-03-28 14:22:05.123456789 +0800)。
2、输入 stat -c '%Y' filename 获取 mtime 的 Unix 时间戳整数(例如:1743142925)。
3、如需仅提取日期部分(不含时间),可组合使用: stat -c '%y' filename | cut -d' ' -f1。
三、使用find命令按mtime查找文件
find 命令通过 -mtime 参数依据文件 mtime 进行时间范围筛选,单位为“24小时段”,其逻辑基于文件修改时间距当前时间的整数天数差,适用于批量定位近期或历史修改的文件。
1、查找过去24小时内修改过的文件: find /path/to/dir -type f -mtime 0。
2、查找恰好2天前修改的文件(即距今48–72小时内修改): find /path/to/dir -type f -mtime 2。
3、查找7天内(含今天)修改过的所有普通文件: find /path/to/dir -type f -mtime -7。
4、查找3天前(不含今天及前2天)修改的文件: find /path/to/dir -type f -mtime +3。
四、使用find配合-exec与stat联合验证
当需对 find 筛选出的每个文件进一步确认其精确 mtime,或进行后续操作(如记录、归档),可将 find 与 stat 组合使用,避免因 ls 输出格式不稳定导致解析错误。
1、列出指定目录下所有 .log 文件及其完整 mtime: find /var/log -name "*.log" -exec stat -c '%n %y' {} \;。
2、仅显示 mtime 早于2026-03-01 的文件路径: find /home -type f -mtime +30 -exec stat -c '%y %n' {} \; | awk '$1" "$2" "$3 。
3、将过去1小时内修改的文件路径写入临时列表: find /tmp -type f -mmin -60 -print > /tmp/recent_files.txt。










