在图片目录下执行:(x.JPG 到 x-small.jpg) for img in *.JPG; do ./resize-tok $img ; done 云想前: du *JPG 4728 DSC_8535.JPG 4896 DSC_8538.JPG 4544 DSC_8540.JPG 572 DSC_8543.JPG 556 DSC_8544.JPG 下面是运行后: du *jpg 372 DSC_8535.JPG_small.jpg 376 DSC_8538.JPG_small.jpg 376 DSC_8540.JPG_small.jpg 380 DSC_8543.JPG_small.jpg 376 DSC_8544.JPG_small.jpg 392 DSC_8546.JPG_small.jpg 脚本resize-tok内容:(要求安装ImageMagick) -------------------以下为脚本----------------------- #!/bin/sh # $1: file name; $2:size in k fsize(){ x=$(du --block-size k $1) echo $x | awk '{print $1}' | sed "s/K//g" } #echo $(fsize $1)k rat=$(echo $(fsize $1) | awk '{print sqrt(400/($1))*100 }') #echo $rat while [ 1 ] do convert -resize $rat%x$rat% $1 $1_small.jpg if [ $(fsize $1_small.jpg) -lt 400 ] then echo "." fsize $1_small.jpg exit fi #du x.jpg rat=$(echo $rat | awk '{print ($1-4) }') #echo $rat done ……