我使用以下查找语法来查找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 提到,或脚本的其他部分。
如果您被允许透露源代码,我建议您询问代码审查堆栈交换。