短时间内查找+搜索大文件

短时间内查找+搜索大文件

我使用以下查找语法来查找std*大于1000M.

find /data -type f \( -name "stdout" -o -name "stderr" \) -size +1000M -print

有时我们会搜索具有大小的文件夹中的文件30G,这需要花费相同30min或更长的时间。

由于这个 find 命令是 bash 脚本的一部分,我想知道我们是否可以更快地进行搜索?

答案1

find /data -type f \( -name "stdout" -o -name "stderr" \) -size +1000M -print可能非常接近使用常见 shell 脚本工具所能达到的最快速度。各个文件的大小无关紧要,因为它是与内容分开记录的。也就是说,find实际上并不数数每个文件中的字节数以检查它是否足够大。该命令的瓶颈很可能是文件数量,如下所示@Kusalananda 提到,或脚本的其他部分。

如果您被允许透露源代码,我建议您询问代码审查堆栈交换

相关内容