Você pode usar identify
de imagemagick
e pode usar o seguinte comando:
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '<300 || <300'
o uso de -exec <command> '{}' \;
garante que seu nome de arquivo possa ter espaços, ou você pode usar
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '<300 || <300'
onde o -I{}
cuida da mesma coisa.
O que eu gosto sobre identify
é que você pode especificar o formato de saída; neste caso, '%w %h %i'
, que dá a largura, a altura e o nome completo do caminho da imagem. Em seguida, a expressão awk
mantém apenas as linhas para as quais a imagem é menor que o tamanho desejado.
Exemplo da saída:
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
Edit: Se você quiser apenas os nomes de arquivo (para canalizar para rm
, por exemplo), simplesmente altere $line
na declaração awk
para , então ele imprimirá apenas a terceira coluna.