找出图像,如果它已经优化

时间:2016-08-08 05:46:42

标签: image optimization

我想知道是否有任何方法可以跳过该文件,如果它已经优化了。

我正在使用以下命令来运行PNG图像的优化:

find '*.png' -print0 | xargs optipng  -nc -nb -o5 -quiet -preserve  -dir ~/images/output -log ~/optpng.log

由于图像目录有数千张图像,因此需要很长时间才能处理。

请建议我一个解决方案。

2 个答案:

答案 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

相关问题