mit convert alle cores nutzen

Mit convert kann man wie im beispiel Bilder auf eine maximale seitenlögen verkleinern. Da convert aber ein single thread prozess ist, habe ich mit einer while schliefe nachhelfen müssen.

#!/bin/bash

cpu=4
mkdir web
 
ls -1 *.JPG *.jpg | while read file;
do {
        echo $file
        convert $file -resize '800x800>' web/$file &

	#warte bis weniger gleich als $cpu converts laufen
	while true; do 
		if [ "$(ps axf | grep convert | wc -l)" -le "$cpu" ]; then 
			break
		fi
		sleep 0.5
	done
}
done
 
exit 0