« Exécuter des commandes sur plusieurs fichiers : find -exec vs find xargs » : différence entre les versions

Aller à la navigation Aller à la recherche
Ligne 51 : Ligne 51 :
* <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
You have to use both or neither of them. The advantage is that all results will be handed over to xargs as a single string without newline separation. NUL charater separation is a way to escape files which also contain spaces in their filenames.
=performances=
4 231

modifications

Menu de navigation