« Exécuter des commandes sur plusieurs fichiers : find -exec vs find xargs » : différence entre les versions
Aller à la navigation
Aller à la recherche
Ligne 17 : | Ligne 17 : | ||
==find \+== | ==find \+== | ||
<pre> | |||
find . [args] -exec [cmd] {} \+ | |||
find . -name \*.html -type f -exec grep -Hn 'pattern' {} \+ | |||
</pre> | |||
* <code>{}</code> contiendra le résultat trouvé par find | |||
* <code>\+</code> tous les résultats trouvés par find sont mergés et la commande (grep ici) n'est exécutée qu'une seule fois avec tous les résultats de find. | |||
** Inconvénient possible : si find trouve beaucoup de résultat, vous allez finir par atteindre ARG_LIMIT | |||
=find | xargs= | =find | xargs= |
Version du 27 juillet 2022 à 01:12
find -exec
find \;
find . [args] -exec [cmd] {} \; find . -name \*.html -type f -exec grep -Hn 'pattern' {} \;
{}
contiendra le résultat trouvé par find\;
signifie que pour chaque résultat trouvé par find, la commande (grep dans l'exemple) sera exécuté une fois sur le résultat trouvé- Donc si find trouve 4000 fichiers, la commande (grep ici) sera exécutée 4000 fois.
find \+
find . [args] -exec [cmd] {} \+ find . -name \*.html -type f -exec grep -Hn 'pattern' {} \+
{}
contiendra le résultat trouvé par find\+
tous les résultats trouvés par find sont mergés et la commande (grep ici) n'est exécutée qu'une seule fois avec tous les résultats de find.- Inconvénient possible : si find trouve beaucoup de résultat, vous allez finir par atteindre ARG_LIMIT