Le 18 novembre 2009 18:08, Félix Hauri <[email protected]> a écrit : > On Wed, Nov 18, 2009 at 05:44:22PM +0100, Marc Mongenet wrote: >> > De même que tu ne fera qu'un fork en tapant: >> > >> > find . -type f -print0 | xargs -0 grep -iwZl "expr1" | xargs -0 grep >> > -iwl "expr2" >> > ... >> > que $(), mais dans tous les cas ``-print0|xargs -0'' t'affranchis des >> > problèmes de noms de fichiers non-conventionnels). >> > >> > find . -xdev -type f -exec grep -iwq expr1 {} \; -exec grep -iwq expr2 >> > {} \; -print >> > >> > est la seule syntaxe qui fonctionnera de manière sûre, quelle que soit >> > le taille des répertoires à parcourir (plus longue, mais efficace). >> > >> >> Tiens, j'aurais juré que xargs permet de s'affranchir de la limite du >> nombre de fichiers. > En fait oui, mais à partir d'un certain volume, tu devras jouer avec > --max-procs, > etc. La commande ``find'' est *la* moissonneuse-batteuse qui te permetra > d'être > fin (-maxdepth, -ipath, \( ... -a ... \), etc ..) dans ta requête et absolu > dans > la réponse. >
Je ne connaissais l'option --max-procs de xargs, elle est très intéressante pour paralléliser (maintenant que j'ai un multi-core)! Mais bon, quel que soit la taille des répertoires à parcourir, xargs me paraît fonctionner de manière sûre. La commande xargs n'a-t-elle pas été justement créée pour rendre sûr le cas où les paramètres risques d'être trop long? Ou bien est-ce autre chose qui m'échappe? Marc Mongenet _______________________________________________ gull mailing list [email protected] http://forum.linux-gull.ch/mailman/listinfo/gull
