Il existe de nombreux types d'images graphiques dans cette immense archive tels que .jpg, .gif, .png, etc. Je ne connais pas tous les types. Existe-t-il un moyen avec 'find' pour pouvoir faire lister toutes les images graphiques quel que soit leur nom d'extension de point? Merci!
Cela devrait faire l'affaire
find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'
exemple de sortie:
./navigation/doc/Sphärische_Trigonometrie-Dateien/bfc9bd9372f650fd158992cf5948debe.png: PNG image
./navigation/doc/Sphärische_Trigonometrie-Dateien/6564ce3c5b95ded313b84fa918b32776.png: PNG image
./navigation/doc/subr_1.jpe: JPEG image
./navigation/doc/Astroanalytisch-Dateien/Gamma.gif: GIF image
./navigation/doc/Astroanalytisch-Dateien/deltaS.jpg: JPEG image
./navigation/doc/Astroanalytisch-Dateien/GammaBau.jpg: JPEG image
Ce qui suit me convient mieux car dans mon cas, je voulais diriger cette liste de fichiers vers un autre programme.
find . -type f -exec file {} \; | awk -F: '{if ($2 ~/image/) print $1}'
Si vous vouliez tarer les images (comme quelqu'un dans les commentaires) a demandé
find . -type f -exec file {} \; | awk -F: '{if ($2 ~/image/) printf("%s%c", $1, 0)}' | tar -cvf /tmp/file.tar --null -T -
find . -type f -exec file {} \; | grep -o -P '^.+: \w+ image'
devrait même être mieux.
Grepping ou en utilisant awk pour "image" seulement ne le fera pas. Les fichiers PSD seront identifiés par "Image" avec un "I" majuscule, nous devons donc améliorer l'expression rationnelle pour être insensible à la casse ou inclure également le I. majuscule. Les fichiers EPS ne contiendront pas du tout le mot "image", donc nous doivent également correspondre à "EPS" ou "Postscript" en fonction de ce que vous voulez. Voici donc ma version améliorée:
find . -type f -exec file {} \; | awk -F: '{ if ($2 ~/[Ii]mage|EPS/) print $1}'
Lié au même problème, je viens de publier un outil appelé photofind ( https://github.com/trimap/photofind ). Il se comporte comme la commande find normale mais est spécialisé pour les fichiers image et prend en charge le filtrage des résultats également en fonction des informations EXIF stockées dans les fichiers image. Voir le github-repo lié pour plus de détails.