3

При использовании grep вы можете искать определенное регулярное выражение, но только внутри файла. Есть ли способ, я могу искать имя папки?

4 ответа4

10

Я обычно использую find:

$ find . -name 'FolderBasename*' -type d

или для более сложных запросов

$ find . -regex '{FolderRegex}' -type d

Как указано в комментариях, если вы хотите, чтобы поиск без учета регистра делал -iname и -iregex

6

Если вы действительно имеете в виду регулярное выражение вместо shellglob, вы можете использовать

find <path> -regex '<regex>' -type d

например.

find Code/ -E -regex '(bin|redblack)_tree\.hs' -type d

опция -E включает регулярное выражение extendend, смотрите man find для получения дополнительной информации.

0

Если вас просто интересует соответствие имени, вы можете просто использовать ' -name ' в find.

find <path> -name '<regex>' -type d
-1

найти гораздо лучше, но неуклюжий ответ на ваш вопрос:

ls -l | grep '^d'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .