Vous pouvez utiliser identify
de imagemagick
et vous pouvez utiliser la commande suivante :
find . -iname "*.jpg" -type f -exec identify -format '%w %h %i' '{}' \; | awk '$1<300 || $2<300'
l'utilisation de -exec <command> '{}' \;
permet de s'assurer que les noms de fichiers peuvent contenir des espaces, vous pouvez aussi utiliser
find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | awk '$1<300 || $2<300'
où le -I{}
s'occupe de la même chose.
Ce que j'aime dans identify
est que vous pouvez spécifier le format de sortie ; dans ce cas-ci '%w %h %i'
qui donne la largeur, la hauteur et le chemin complet de l'image. Ensuite, le awk
expression ne conserve que les lignes pour lesquelles l'image est plus petite que la taille souhaitée.
Exemple de sortie :
64 64 ./thumbsup.jpg
100 150 ./photomin.jpg
Edit : Si vous ne voulez que les noms de fichiers (pour le piping vers rm
par exemple), il suffit de modifier $line
dans le awk
déclaration à $3
alors il n'imprimera que la troisième colonne.