更通用的压缩博客图片尺寸的 Bash 脚本

今天更新博客,想起来图片还没有压缩格式,所以利用之前的写过的程序 ( 压缩博客图片尺寸 ) 更新博客,但是发现没办法在 Mac 使用。这里记录下更新之后的程序。

起因

其实原因也很简单,因为之前的程序主要在 Linux 平台使用,所以我用了 stat 命令,但是这不是一个通用的 POSIX 标准程序,参考这个链接修改了一个新的版本 How can I get the size of a file in a bash script?

程序

其实 unix.stackexchange.com 的帖子特别好,总而言之一句话就是 stat 不是一个通用命令,最好使用 POSIX 规定的命令和格式比如 ducut 同时即使是 du 的选项也需要注意。

修改后的程序如下


#! /bin/bash 

#获取脚本所在文件目录
#大于1M图片缩小一半

for file in  `find ./ -name "*.[jJ][pP][gG]"`;
    do    	
    	if [ `du -k "$file" | cut -f1` -gt 1000 ]
		then
    		echo $file
    		mogrify -resize 50% $file
		fi

	done

for file in  `find ./ -name "*.[pP][nN][gG]"`;
    do 
    	if [ `du -k "$file" | cut -f1` -gt 1000 ]
		then
    		echo $file
    		mogrify -resize 50% $file
		fi
	done

echo "Done"

也可以从这儿下载 resize.sh

Written on January 5, 2019