Попробуйте находку в находке:
find . -type d -name "a*" -exec find {} -name "b" \;
Запуск в текущем каталоге (.
), находка будет искать все каталоги, запускающиеся с буквы A рекурсивно. Для каждого каталога это находит, это посмотрит в нем для файла, названного b.
Если Вы только хотите, чтобы это посмотрело в папках, запускающихся с a и никаких каталогов в тех* папки, используйте maxdepth:
find . -type d -name "a*" -exec find {} -maxdepth 1 -name "b" \;
избавиться от ошибок:
find . -type d -name "a*" 2> /dev/null -exec find {} -maxdepth 1 -name "b" \;
Просто быстрое обновление для людей, которые могли бы закончить по этому вопросу.
В дополнение к решению John T, если, я также нашел, что можно исключить каталоги при помощи переключателя чернослива (должен был прочитать страницы справочника раньше, я предполагаю, hehe.)
Так, например, если я хочу искать все каталоги файл или каталог "b" кроме каталогов, запускающихся с "a", я могу сделать это
find . -path 'a*' -prune -o -name "b" -print
резкий звук