如何查找任意一天的 hh:mm 和 HH:MM 之间创建的文件?

如何查找任意一天的 hh:mm 和 HH:MM 之间创建的文件?

例如,查找任意一天(不是特定日期)的 20:00 到 23:30 之间创建的所有文件?

一直在经历man find并且没有发现任何可以做到这一点的东西。

我是否必须编写自己的脚本来解析创建时间?

答案1

您可以使用-newerXY具体的日,例如:

find -newermt "20150203 2000" -a \! \( -newermt "20150203 2330" \)

我使用修改时间,因为我的 ext4 文件系统不保存创建时间。如果您的文件系统支持修改时间,则可以使用-newerBt

如果你需要在这些时间之间查找文件任何天,那么您需要为列表中的每个文件运行一个脚本find。最简单的命令是stat -c %y "$1",然后提取并分析时间字段。

您可以对一天中的秒数进行算术运算(($(stat -c %Y "$1") % 86400)),检查它是否在 72000 到 84600 之间,但这会忽略夏令时,识别在夏季 21:00 到 00:30 之间修改的文件。

答案2

使用下面的命令:

find . -mtime $(date +%s -d"Aug 10, 2013 23:30:00") -mtime $(date +%s -d"Aug 1, 2013 20:00:00")

或者尝试这个:

find /var/tmp -mtime +2 -a -mtime -8 -ls

查找超过 2 天但不超过 8 天的文件。

相关内容