Как использовать, находят, что команда находит все файлы с расширениями из списка?

Я должен найти все файлы изображений из каталога (gif, png, jpg, jpeg).

find /path/to/ -name "*.jpg" > log

Как изменить эту строку для нахождения не только .jpg файлов?

171
задан unutbu 24 October 2012 в 10:07
поделиться

4 ответа

find /path/to -regex ".*\.\(jpg\|gif\|png\|jpeg\)" > log
178
ответ дан 23 November 2019 в 20:43
поделиться
find /path/to/ -type f -print0 | xargs -0 file | grep -i image

Здесь используется команда file , чтобы попытаться распознать тип файла, независимо от имени файла (или расширения).

Если / путь / к или имя файла содержит строку image , то вышеуказанное может возвращать поддельные совпадения. В этом случае я бы посоветовал

cd /path/to
find . -type f -print0 | xargs -0 file --mime-type | grep -i image/
11
ответ дан 23 November 2019 в 20:43
поделиться
find /path/to/ -iname '*.gif' -o -iname '*.jpg' -o -iname '*.png' -o -iname '*.jpeg'

будет работать. Может быть, есть более элегантный способ.

133
ответ дан 23 November 2019 в 20:43
поделиться
find /path -type f \( -iname "*.jpg" -o -name "*.jpeg" -o -iname "*gif" \)
6
ответ дан 23 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: