1 min read

Run commands in parallel with xargs


Parallelize anything

Resize 100 images using 8 parallel processes:

xargs_parallel.sh
find . -name "*.png" | xargs -P 8 -I {} convert {} -resize 50% {}

Download a list of URLs in parallel:

xargs_download.sh
cat urls.txt | xargs -P 4 -I {} curl -sO {}

Run a script against multiple files:

xargs_script.sh
ls *.json | xargs -P 4 -I {} bash -c 'echo "Processing {}"; validate {}'

Tip: Use -P 0 to run as many processes as possible. Use -t to print each command before executing.