xargs
with the -P
option (number of processes). Say I wanted to compress all the logfiles in a directory on a 4-cpu machine:
find . -name '*.log' -mtime +3 -print0 | xargs -0 -P 4 bzip2
You can also say -n <number>
for the maximum number of work-units per process. So say I had 2500 files and I said:
find . -name '*.log' -mtime +3 -print0 | xargs -0 -n 500 -P 4 bzip2
This would start 4 bzip2
processes, each of which with 500 files, and then when the first one finished another would be started for the last 500 files.
Not sure why the previous answer uses xargs
and make
, you have two parallel engines there!