我正在尝试调整目录和子目录中的所有图像的大小。我有从这里得到的脚本:使用 mogrify 调整大文件大小,同时忽略小文件
并调整为:
identify -format '%w %h %i\n' ./*.jpg |
awk '$1 > 1200 || $2 > 1200 {sub(/^[^ ]* [^ ]* /, ""); print}' |
tr '\n' '\0' |
xargs -0 mogrify -resize '1200x1200'
但它只处理当前目录和 .jpg 扩展名 - 忽略大写 - .JPG
我尝试过做出调整,但没有取得太大进展。
答案1
你可以identify
结合find
, 例如:
find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \;
它将identify
针对递归找到的名称以 .jpg 结尾(不区分大小写)的每个文件运行命令。
使用您的完整示例:
find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \; |
awk '$1 > 1200 || $2 > 1200 {sub(/^[^ ]* [^ ]* /, ""); print}' |
tr '\n' '\0' |
xargs -0 mogrify -resize '1200x1200'