linux – 尽可能快地查找最近更改的文件

我有一个相当大的目录结构,包含数千个文件.我想知道自特定时间以来是否有任何改变.现在,我可以使用

find <dir> -mmin 30 -type f

..找到过去30分钟内发生变化的文件.但是,这需要几秒钟才能完成,我真的不感兴趣(1)查找所有更改的文件,甚至(2)查找哪些文件已更改.我只是在寻找“任何文件已更改?”的是/否答案.

我可以通过使用-print -quit在找到第一个文件后停止来使(1)更好.但是,对于没有文件更改的情况,总搜索仍需要一段时间.

我想知道是否有更快的方法来检查这个?目录时间戳,也许?我正在使用ext4,如果重要的话.

最佳答案 对于GNU的查找,您可以使用选项-quit在第一场比赛后停止搜索.

因此,如果您想查找,如果在过去30分钟内至少更改了一个文件,那么您可以运行:

find . -mmin -30 -type f -print -quit

这将打印出第一个匹配文件的名称并退出.

此外,如果您可以控制使用一堆文件的软件,并且性能不是问题,那么您可以在每次更改或添加任何文件时添加触摸时间戳文件的功能,然后仅检查该时间戳文件的统计信息.

点赞