bash: if внутри find

программы Linux bash

как правильно написать исполнения условия внутри find ?
мне нужно выбрать все каталоги с картинками:
думал, сделать так:
find -type d -exec if [[ -f "{}/*.jpg" ]];then echo "{}") > logfile;fi \;
но сообщает "bash: ошибка синтаксиса около неожиданной лексемы `then'".
помогите советом
Ответы:
find /path/to/dir -type f -name "*.jpg" -exec echo "{}" > logfile \;
тут if не нужен.
find /path/to/dir -type f -iname '*.jpg' -exec dirname '{}' \; | sort | uniq > logfile
find -type d -exec bash -c "if [[ -f '{}/*.jpg' ]]; then echo '{}' >> logfile; fi" \;
Как уже сказали выше, if тут не нужен. Но я вместо -name использовал бы -iname, чтобы под маску попадали как файл "1.jpg", так и "My.JpG":
find /path/to/dir -type f -iname "*.jpg" -exec echo "{}" > logfile \;


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.