Shell命令查找昨天24小时修改过的文件

时间:2016-07-14 16:59:17

标签: regex shell date find

我想获得一个shell命令来查找昨天修改日期的文件 - 仅限24小时。这意味着我想找到昨天修改过的文件。

2 个答案:

答案 0 :(得分:1)

使用find mtimedaystart,它会在1 * 24小时前找到修改过的文件,从午夜(daystart)开始计算:

find dir -daystart -mtime 1

答案 1 :(得分:1)

此答案假设您拥有GNU datefind。它还假定如果您在2016-07-14任何时候运行脚本,您希望在2016-07-13T00:00:00或之后以及2016-07-14T00:00:00之前或之后修改文件。

如果这些假设是正确的,那么您可以使用:

find .  -newermt "$(date -d yesterday +'%Y-%m-%d 00:00:00')" \
    '!' -newermt "$(date -d today     +'%Y-%m-%d 00:00:00')"

第一个命令替换生成(在2016-07-14)输出2016-07-13 00:00:00和第二个2016-07-14 00:00:00。获得正确结果不需要-d today,但显示对称性。

整体情况意味着在昨天上午午夜或之后进行了修改,并且从今天午夜开始就没有修改过。&#39。

在没有GNU date的系统上更难以评估不同的日期。

有关使用-mtime无法满足假设要求的原因的信息,请参阅Explaining find -mtime command

相关问题