xargs
com a opção -P
(número de processos). Digamos que eu quisesse compactar todos os arquivos de log em um diretório em uma máquina de 4 cpu:
find . -name '*.log' -mtime +3 -print0 | xargs -0 -P 4 bzip2
Você também pode dizer -n <number>
para o número máximo de unidades de trabalho por processo. Então digamos que eu tenha 2500 arquivos e eu falei:
find . -name '*.log' -mtime +3 -print0 | xargs -0 -n 500 -P 4 bzip2
Isso iniciaria 4% debzip2
processos, cada um com 500 arquivos e, em seguida, quando o primeiro terminasse, outros seriam iniciados nos últimos 500 arquivos.
Não sei por que a resposta anterior usa xargs
e make
, você tem dois mecanismos paralelos lá!