Com GNU xargs
e um shell com suporte para substituição de processos
xargs -r -0 -P4 -n1 -a <(printf '%sprintf '%sfind . -name 'myfile*' -type f -print0
' myfile* | xargs -r -0 -P4 -n1 mycommand
' myfile*) mycommand
Correria até 4 mycommand
s em paralelo.
Se mycommand
não usar seu stdin, você também pode fazer:
xargs -r -0 -P4 -n1 -a <(printf '%sprintf '%sfind . -name 'myfile*' -type f -print0
' myfile* | xargs -r -0 -P4 -n1 mycommand
' myfile*) mycommand
Que também funcionaria com o xargs
dos BSDs modernos.
Para uma pesquisa recursiva de myfile*
files, substitua o comando printf
por:
( -type f
é somente para arquivos regulares. Para um equivalente glob, você precisa de zsh
e seu printf '%s%code%' myfile*(.)
).