Я должен найти все файлы изображений из каталога (gif, png, jpg, jpeg).
find /path/to/ -name "*.jpg" > log
Как изменить эту строку для нахождения не только .jpg файлов?
find /path/to -regex ".*\.\(jpg\|gif\|png\|jpeg\)" > log
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/
find /path/to/ -iname '*.gif' -o -iname '*.jpg' -o -iname '*.png' -o -iname '*.jpeg'
будет работать. Может быть, есть более элегантный способ.
find /path -type f \( -iname "*.jpg" -o -name "*.jpeg" -o -iname "*gif" \)