我知道这个命令find . -type f -newermt 2010-10-07 ! -newermt 2014-10-08
,它可以找到两个日期之间修改的文件。但这里的问题是找到
在 2 到 5 天内修改过的文件。所以给出日期不是一个选择。 find 命令是否有某些选项可以执行此操作,或者有其他选择?
答案1
从man find
:
-mtime n
文件数据的最后修改时间小于、大于或正好是 n*24 小时前。请参阅 -atime 的注释以了解舍入如何影响文件修改时间的解释。
-atime n
文件上次访问时间小于、大于或正好 n*24 小时前。当 find 计算出上次访问文件是在多少个 24 小时周期之前,任何小数部分都会被忽略,因此为了匹配 -atime +1,文件必须至少在两天前被访问过。
find . -mtime +1 -mtime -5
密切关注n
选择的价值 - 第一眼看上去并不那么直观。
+1
意味着超过1*24h
,但由于忽略了分数,因此它包括1.9*24h
并且接受的时间范围恰好从2*24h
(interval [1,2)
) 开始。所以上边界很有趣。
在 的情况下,-5
它意味着小于 恰好5*24h
,间隔为5
as[5,6)
或5<=x<6
其他表示法。所以下边界很有趣。