Você pode combinar identify
com find
, por exemplo:
find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \;
que executará o comando identify
para cada arquivo recursivamente encontrado com o nome terminando em .jpg (sem distinção entre maiúsculas e minúsculas).
Usando seu exemplo completo:
find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \; |
awk '$1 > 1200 || $2 > 1200 {sub(/^[^ ]* [^ ]* /, ""); print}' |
tr '\n' 'find . -type f -iname "*.jpg" -exec identify -format '%w %h %i\n' {} \;
' |
xargs -0 mogrify -resize '1200x1200'