如果在多核处理器上安装了xargs,则可以从以下内容中受益,以防万一有人感兴趣。
环境:
Processor: Dual Quad-core 2.4GHzMemory: 32 GBNumber of files: 584450Total Size: ~ 35 GB
测试:
1.找到必要的文件,将它们通过管道传递到xargs,并告诉它执行8个实例。
time find ./ -name "*.ext" -print0 | xargs -0 -n1 -P8 grep -H "string" >> Strings_find8real 3m24.358suser 1m27.654ssys 9m40.316s
2.找到必要的文件,将它们通过管道传递到xargs,并告诉它执行4个实例。
time find ./ -name "*.ext" -print0 | xargs -0 -n1 -P4 grep -H "string" >> Stringsreal 16m3.051suser 0m56.012ssys 8m42.540s
3. @Stephen建议:找到必要的文件并使用+代替xargs
time find ./ -name "*.ext" -exec grep -H "string" {} + >> Stringsreal 53m45.438suser 0m5.829ssys 0m40.778s4.常规递归grep。
grep -R "string" >> Stringsreal 235m12.823suser 38m57.763ssys 38m8.301s
就我的目的而言,第一个命令工作得很好。



