To by mělo stačit
find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'
příklad výstupu:
./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
Následující mi vyhovuje lépe, protože v mém případě jsem chtěl tento seznam souborů přenést do jiného programu.
find . -type f -exec file --mime-type {} \+ | awk -F: '{if ($2 ~/image\//) print $1}'
Pokud byste chtěli obrázky roztrhat (jak se někdo v komentářích zeptal)
find . -type f -exec file --mime-type {} \+ | awk -F: '{if ($2 ~/image\//) printf("%s%c", $1, 0)}' | tar -cvf /tmp/file.tar --null -T -
Najděte soubory existující v jednom adresáři, ale ne ve druhém
Vytvořit příkaz pro Windows – možné možnosti?