
Я ищу команду 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.