আমি এই উত্তরে প্রদত্ত শেল স্ক্রিপ্টটি ব্যবহার করেছি , তবে উত্পন্ন করার জন্য আমার প্রায় 22000 থাম্বনেইল রয়েছে।
সুতরাং এখানে এই স্ক্রিপ্টের একটি বাশ সংস্করণ দেওয়া হয়েছে, এর ~/.shotwell
পরিবর্তে ~/.local/shotwell
(যা আমার কাছে রয়েছে) এবং আমার প্রসেসরের যতটা কোর ব্যবহার করা হয়েছে (আমার ক্ষেত্রে 8 গুণ বেশি দ্রুত!):
#!/bin/bash
# under linux, use this to launch as many convert as your processor core number
#MAX_PROCESSES=`cat /proc/cpuinfo |grep ^processor | wc -l`
# or use a static value
MAX_PROCESSES=4
sqlite3 ~/.shotwell/data/photo.db "select id||' '||filename from PhotoTable order by timestamp desc" |
while read id filename; do
for size in 128 360; do
tf=$(printf ~/.shotwell/thumbs/thumbs${size}/thumb%016x.jpg $id);
test -e "$tf" || {
echo "Generating thumb for $filename ($tf)";
convert "$filename" -auto-orient -thumbnail ${size}x${size} $tf &
RUNNING="`jobs -p |wc -l`"
while [ "$RUNNING" -ge "$MAX_PROCESSES" ]
do
sleep 0.3
RUNNING="`jobs -p |wc -l`"
done
}
done
done
tf_src="$(exiv2 -vf -et "$filename" | grep -o "to file .*" | cut -f3- -d" ")" && mv "$tf_src" $tf