Как я могу искать каталоги, запускающиеся с определенной буквы?

Как я могу перерыть каталоги, запускающиеся с определенной буквы с Linux, находят команду.

Например, я хочу искать все каталоги, запускающиеся с буквы a для файла или каталога, запускающегося с b.

8
задан 16.04.2013, 18:36

3 ответа

Попробуйте находку в находке:

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" \;
11
ответ дан 07.12.2019, 13:58

Просто быстрое обновление для людей, которые могли бы закончить по этому вопросу.

В дополнение к решению John T, если, я также нашел, что можно исключить каталоги при помощи переключателя чернослива (должен был прочитать страницы справочника раньше, я предполагаю, hehe.)

Так, например, если я хочу искать все каталоги файл или каталог "b" кроме каталогов, запускающихся с "a", я могу сделать это

find . -path 'a*' -prune -o -name "b" -print

резкий звук

1
ответ дан 07.12.2019, 13:58

можно также использовать, находят-regex...

find -regex .*/a.*/b
1
ответ дан 07.12.2019, 13:58

Теги

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