我前一段时间写了一个bash脚本,用Image Magick调整目录中所有图像的大小和压缩。
# Usage: smartResize "2400x2400>"
function smartResize() {
find ./ -name "*.jpg" -exec magick mogrify -resize $1 -sampling-factor 4:2:0 -strip -interlace JPEG -quality 85 -colorspace RGB {} \;
find ./ -name "*.JPG" -exec magick mogrify -resize $1 -sampling-factor 4:2:0 -strip -interlace JPEG -quality 85 -colorspace RGB {} \;
find ./ -name "*.jpeg" -exec magick mogrify -resize $1 -sampling-factor 4:2:0 -strip -interlace JPEG -quality 85 -colorspace RGB {} \;
find ./ -name "*.JPEG" -exec magick mogrify -resize $1 -sampling-factor 4:2:0 -strip -interlace JPEG -quality 85 -colorspace RGB {} \;
}
我必须添加额外的行来查找.jpg
扩展的一些替代案例。我不是特别喜欢但完成了工作。
是否有人更了解如何处理区分大小写以及e
扩展中的可选jpeg
?
n.b。我在Cmder中运行它:Windows上的Git Bash。
答案 0 :(得分:1)
GNU
版本的find
标记-iname
,可以对文件名称小球进行不区分大小写的匹配,
find ./ -iname '*.jpg'
或者如果您使用的是没有GNU
实用程序的系统,请使用glob
find ./ -name '*.[Jj][Pp][Gg]'
如果您对多个名称过滤器感兴趣,只需使用-o
表达式包含多个名称globs
find ./ \( -iname "*.jpg" -o -iname "*.jpeg" \)