我想知道是否有任何方法可以跳过该文件,如果它已经优化了。
我正在使用以下命令来运行PNG图像的优化:
find '*.png' -print0 | xargs optipng -nc -nb -o5 -quiet -preserve -dir ~/images/output -log ~/optpng.log
由于图像目录有数千张图像,因此需要很长时间才能处理。
请建议我一个解决方案。
答案 0 :(得分:1)
find -name "*png" -type f |while read FILE do echo $FILE BASEFILE=$(basename $FILE) optipng $FILE > /tmp/$$.out TEST=$(cat /tmp/$$.out |grep "optimized" |wc -l) if [ $TEST -gt 0 ] then echo "$BASEFILE is already optimized" else echo "$BASEFILE NOT is already optimized" cp $BASEFILE ~/destination_dir fi done
答案 1 :(得分:0)
考虑并行执行它们(例如,每次与-P 4
并行执行4次)并且不为每个文件调用新进程(通过每个optipng
进程执行8个图像)如果您有多核机器:
find ... | xargs -n 8 -P 4 optipng ...
或者,您可以使用 GNU Parallel 。