使用“查找”来确定昨天修改的文件

我敢肯定,这是一个古老的问题,只是一个简单的答案,但我已经尝试了我所知道的每一个组合,试图没有任何东西。 而search谷歌是不是很愉快,因为search这个主题有数百种方式来“使用date命令find昨天的date”。

无论如何,我正在尝试使用find来select昨天修改的文件列表。 我们的目标是从目录中select昨天的日志文件来做一些特定的事情。 该目录包含多天的日志输出。

我能得到的最好的是find昨天的文件与今天的文件列出以及。 我不想看到今天的文件 – 就在昨天。

我也会抛出这个问题 :这是AIX的发现,而不是在大多数Linux发行版中find的GNU发现。 所以 – -daystart不是我可以select的。 (已经想到那个了!)

任何人都知道使用AIX上的查找列出昨天的文件的有效方法?

一种可能性:在你的盒子上build立GNU“find”,并用它来代替stock“find”。

或者,如果AIX发现有新的testing,你可以这样做:

 # midnight oct 7 touch -t 10070000 today.ref # midnight oct 6 touch -t 10060000 yesterday.ref find /dir -newer yesterday.ref -a \! -newer today.ref -print rm today.ref yesterday.ref 

您可以扣除自午夜以来当前时间的分钟数,并使用-mmin

 min=$(date +%M); currtime=$(($(date +%k)*60 + ${min#0*} )); find /some/dir -mmin -$((currtime + (24 * 60))) -a -mmin +$((${currtime} + 1)) 

您可能需要对偏移进行一些调整。 我没有很多文件在正确的时间做大量的边缘案例testing。

取决于你需要怎么做,一个简单的ls + grep解决scheme呢?

 ls -al LOGDIRECTORY | grep 'YOUR DATE' 

不会find . -mtime 1 find . -mtime 1诀窍?

如果你需要它是昨天,并且不能运行它接近午夜,我想你可以使用两个-mmin选项来指定一个时间支架。

所以,如果是01:00,你可以find . -mmin +60 -mmin -1500 find . -mmin +60 -mmin -1500