如何使用Linux命令按时间筛选出最近修改过的文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计906个文字,预计阅读时间需要4分钟。
要查找最近修改的文件,可以使用`-mtime`或`-mmin`选项。注意,`-mtime`表示修改时间,而`-ctime`表示创建时间。`-ctime`并不是创建时间,而是元数据(如权限、所有权等)变更的时间。因此,`-mtime`或`-mmin`是查找内容修改的更合适选项。
为什么 -mtime 的数字含义反直觉?
-mtime 的数值不是“多少天前”,而是“距现在 n×24 小时到 (n+1)×24 小时之间”。比如:
-
-mtime -1:过去 24 小时内(0 ~ 24h)修改的文件 -
-mtime 1:恰好 24 ~ 48 小时前修改的文件 -
-mtime +1:超过 48 小时前(即 >48h)修改的文件
要找“最近 1 小时改过的”,-mtime -1 不够准——它可能漏掉刚改的文件。此时该用 -mmin -60,精度更高。
-mmin 和 -mtime 性能差异在哪?
-mmin 对每个文件都调用 stat() 读取精确秒级时间,适合小范围、高精度场景(如监控脚本);-mtime 在部分文件系统上可利用目录时间戳粗筛,速度更快。
本文共计906个文字,预计阅读时间需要4分钟。
要查找最近修改的文件,可以使用`-mtime`或`-mmin`选项。注意,`-mtime`表示修改时间,而`-ctime`表示创建时间。`-ctime`并不是创建时间,而是元数据(如权限、所有权等)变更的时间。因此,`-mtime`或`-mmin`是查找内容修改的更合适选项。
为什么 -mtime 的数字含义反直觉?
-mtime 的数值不是“多少天前”,而是“距现在 n×24 小时到 (n+1)×24 小时之间”。比如:
-
-mtime -1:过去 24 小时内(0 ~ 24h)修改的文件 -
-mtime 1:恰好 24 ~ 48 小时前修改的文件 -
-mtime +1:超过 48 小时前(即 >48h)修改的文件
要找“最近 1 小时改过的”,-mtime -1 不够准——它可能漏掉刚改的文件。此时该用 -mmin -60,精度更高。
-mmin 和 -mtime 性能差异在哪?
-mmin 对每个文件都调用 stat() 读取精确秒级时间,适合小范围、高精度场景(如监控脚本);-mtime 在部分文件系统上可利用目录时间戳粗筛,速度更快。

