Найти путь, который имеет конкретную подкаталоги

Рассмотрим путь в структуре каталогов / A / B / C / D / A / B / C / E / A / B / O / P

теперь, если я хочу перечислить весь путь, в котором есть подкаталог C, тогда это можно сделать через grep? Ожидаемый результат: / A / B / C / D / A / B / C / E

Я попытался использовать grep и найти, но не смог добиться этого

2 Solutions collect form web for “Найти путь, который имеет конкретную подкаталоги”

В то время как ответ ka3ak работает, find поставляется с параметром «-path», поэтому вы можете просто использовать

find . -type d -path "*/c/*" 

-path кажется еще немного быстрее:

 [hexathos:~/test] $ time find . -regextype posix-extended -regex ".*/c/.*" ./a/b/c/d ./a/b/c/e real 0m0,013s user 0m0,010s sys 0m0,000s [hexathos:~/test] $ time find . -type d -path "*/c/*" ./a/b/c/d ./a/b/c/e real 0m0,012s user 0m0,007s sys 0m0,003s 

Вам нужно только find для этого:

 find A -type d -regextype posix-extended -regex ".*/C/.*" 

Для следующей структуры каталогов

 A └── B ├── C │  ├── D │  └── E ├── C1 │  └── E └── O └── P 

он вернется:

 A/B/C/E A/B/C/D 
  • Как управлять файлом журнала с помощью grep или awk?
  • Как я могу искать имена файлов, которые начинаются с xy_ *, и создаются / редактируются сегодня?
  • Использование обратной косой черты в разных командах
  • grep также возвращает не соответствующие строки
  • запускать grep cmd рекурсивно и печатать имя пути и результат
  • как я recursivley grep (или иначе искать) шестнадцатеричные строки
  • Как выбрать количество цифр в переменной в моих сценариях?
  • Как использовать отрицание команды в цикле while с grep в сценарии оболочки?
  • Печать только git commit sha и шаблон с помощью sed
  • ls выводит несколько столбцов, даже если отправлен в grep с помощью zml-конфигурации grml
  • Предложение xargs grep
  • Linux и Unix - лучшая ОС в мире.