Подтвердить что ты не робот

Linux find: список всех графических файлов с помощью find?

В этом огромном архиве есть много типов графических изображений, таких как .jpg,.gif,.png и т.д. Я не знаю всех типов. Есть ли способ "найти", чтобы иметь возможность отображать все графические изображения независимо от их имени расширения точки? Спасибо!

4b9b3361

Ответ 1

Это должно сделать трюк

find . -name '*' -exec file {} \; | grep -o -P '^.+: \w+ image'

Пример вывода:

./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

Ответ 2

Следующее мне подходит, так как в моем случае я хотел передать этот список файлов в другую программу.

find . -type f -exec file {} \; | awk -F: '{if ($2 ~/image/) print $1}'

Ответ 3

find . -type f -exec file {} \; | grep -o -P '^.+: \w+ image'

должно быть даже лучше.

Ответ 4

Grepping или использование awk для "изображения" только этого не сделает. PSD файлы будут идентифицироваться с помощью "Image" с капиталом "I", поэтому нам нужно улучшить регулярное выражение либо нечувствительным к регистру, либо также включать капитал I. EPS файлы вообще не содержат слова "изображение", поэтому мы необходимо также соответствовать "EPS" или "Postscript" в зависимости от того, что вы хотите. Итак, вот моя улучшенная версия:

find . -type f -exec file {} \; | awk -F: '{ if ($2 ~/[Ii]mage|EPS/) print $1}'

Ответ 5

В связи с той же проблемой я только что опубликовал инструмент под названием photofind (https://github.com/trimap/photofind). Он ведет себя как обычная команда find, но специализируется на файлах изображений и поддерживает фильтрацию результатов также на основе EXIF-информации, хранящейся в файлах изображений. Подробнее см. Связанный github-repo.