4 231
modifications
(5 versions intermédiaires par le même utilisateur non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
[[Category:Linux]] | |||
[[Category:serveur]] | [[Category:serveur]] | ||
[[Category:desktop]] | [[Category:desktop]] | ||
Ligne 51 : | Ligne 52 : | ||
* <code>-0</code> spécifie à xargs que l'entrée qu'il reçoit est séparé par le caractère ASCII nul <code>\000</code> | * <code>-0</code> spécifie à xargs que l'entrée qu'il reçoit est séparé par le caractère ASCII nul <code>\000</code> | ||
* Quand on ne spécifie pas <code>-nINT</code>, xargs utilise le défaut <code>-n5000</code>. Cela signifie donc que la commande est exécutée avec 5000 arguments maximums, donc dans le cas présent, avec 5000 fichiers à la fois (puis la commande est exécutée une seconde fois avec les 5000 fichiers suivants, etc). Cela est similaire avec le <code>+;</code> de <code>-exec</code>, néanmoins sans risque de dépasser ARG_LIMIT, ni une limite arbitraire fixée par la commande que vous exécutez. | * Quand on ne spécifie pas <code>-nINT</code>, xargs utilise le défaut <code>-n5000</code>. Cela signifie donc que la commande est exécutée avec 5000 arguments maximums, donc dans le cas présent, avec 5000 fichiers à la fois (puis la commande est exécutée une seconde fois avec les 5000 fichiers suivants, etc). Cela est similaire avec le <code>+;</code> de <code>-exec</code>, néanmoins sans risque de dépasser ARG_LIMIT, ni une limite arbitraire fixée par la commande que vous exécutez. | ||
==caractère ASCII nul \000== | |||
Le caractère ASCII nul <code>\000</code> est une bonne manière de gérer les fichiers contenants des espaces | |||
=performances= | |||
Globalement, <code>xargs -n1</code> est légèrement plus rapide que <code>\;</code>, et <code>xargs -n5000</code> a une vitesse similaire à <code>\+</code> | |||
Notez que <code>xargs</code> peut se paralléliser avec <code>-PINT</code> (généralement -P4 ou -P8 selon le nombre de cœur de votre processeur), ce qui en augmentera les performances que ce soit avec -n1 ou sans.<br> | |||
Rappelez vous que l'intérêt de paralléliser une commande traitant des fichiers n'augmentera les performances que si vous devez appliquer une commande à un nombre important de petits fichiers. Si vous traitez de gros fichiers, la vitesse de votre disque deviendra le facteur limitant et vous perdrez très vite les bénéfices de la parallélisation. | |||
=Différence à noter= | |||
* <code>find -exec</code> retourne l'exit-code de find et pas celui de la sous-commande. | |||
* <code>find | xargs</code> retourne l'exit-code de la sous-commande. |