Мне нужно найти все каталоги, которые содержат определенный символ в их имени и распечатать их.
Так что, если у меня есть каталоги:
abc cde fgh
И я ищу "c", я должен получить:
abc
cde
Следующие команды выполняют требуемый запрос:
find -name "*c*" -type d
-name "*c*"
- с именем содержит букву c
-type d
- которые являются каталогомВы можете запустить команду в другом каталоге (/full/path/to/dir
), используя:
find /full/path/to/dir -name "*c*" -type d
Больше информации nixCraft найти команду
Если globstar
включен, вы можете использовать это
for d in **/*c*/; do echo $d; done
Первый **
будет соответствовать любым произвольным путям подкаталогов. Затем *c*/
с соответствующими папками с символом c в нем
Если он не включен, вы можете включить его с shopt -s globstar
globstar
- Если установлено, шаблон
**
используемый в контексте расширения имени файла, будет соответствовать всем файлам и нулю или более каталогов и подкаталогов. Если за шаблоном следует символ/
, совпадают только каталоги и подкаталоги.