Как найти структуру каталогов в Linux

Как найти структуру каталогов в Linux

Я ищу команду Linux для RHEL v6.xпоиска в определенной структуре каталогов в текущем каталоге.

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

Работает:

find /home/dir1/* -name "def"


Не работает:

find /home/dir1/* -name "abc/def"

Я также попробовал команду ниже, но она также выводит список файлов внутри этого каталога. Но я не хочу выводить список файлов внутри этого каталога. Я хочу только вывести список полных путей всех каталогов, которые имеют эту abc/defструктуру каталогов.

locate abc/def/

Кто-нибудь может мне помочь, пожалуйста.

Заранее спасибо.

решение1

Тест -nameсоответствует только последнему компоненту пути. Чтобы соответствовать чему-то вроде этого, abc/defвам понадобится -path:

$ mkdir -p somedir/otherdir/abc/def/ghi
$ find somedir -path '*/abc/def'
somedir/otherdir/abc/def

решение2

Как насчет этого.

find /home/dir1/ -type d | grep 'abc/def'

или если вы хотите вывести список каталогов только до определенной глубины.

find /home/dir1/ -maxdepth 2 -type d | grep 'abc/def'

-d - directory

-maxdepth levels of directories below the starting-points.

решение3

tree <base dir>
       -L level
             Max display depth of the directory tree.
       -P pattern
              List  only those files that match the wild-card pattern.

Связанный контент