Si vous avez xargs installé sur un processeur multi-core, vous pouvez bénéficier des avantages suivants juste au cas où quelqu'un est intéressé.
Environnement:
Processor: Dual Quad-core 2.4GHz
Memory: 32 GB
Number of files: 584450
Total Size: ~ 35 GB
Tests:
1. Trouver les fichiers nécessaires, pipe à xargs et dites lui d'exécuter 8 cas.
time find ./ -name "*.ext" -print0 | xargs -0 -n1 -P8 grep -H "string" >> Strings_find8
real 3m24.358s
user 1m27.654s
sys 9m40.316s
2. Trouver les fichiers nécessaires, pipe à xargs et dites lui d'exécuter des 4 instances.
time find ./ -name "*.ext" -print0 | xargs -0 -n1 -P4 grep -H "string" >> Strings
real 16m3.051s
user 0m56.012s
sys 8m42.540s
3. Suggéré par @Stephen: Trouver les fichiers nécessaires et les utiliser + au lieu de xargs
time find ./ -name "*.ext" -exec grep -H "string" {} \+ >> Strings
real 53m45.438s
user 0m5.829s
sys 0m40.778s
4. Régulière récursive grep.
grep -R "string" >> Strings
real 235m12.823s
user 38m57.763s
sys 38m8.301s
Pour ma part, la première commande a très bien fonctionné.