6

Допустим, мне нужно найти этот путь /<some_where_in_root>/find/this/path и единственная информация, которую я имею, - это /find/this/path . Как лучше всего найти полный каталог?

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

До сих пор я пытался find . -type d -name "/find/this/path" но это, очевидно, интерпретирует /find/this/path как строку. Есть ли способ использовать find в этой ситуации? Будет ли лучше просто разобрать путь, который я имею, взять часть path и выполнить поиск по этой строке?

4 ответа4

5

Вы должны использовать -path или -ipath с групповыми символами

find . -type d -ipath "*/find/this/path"
2

работает во всех вариантах nix:

applemcg.$ find / -type d -name this | grep find/this/path

и маленький совет при обращении за помощью. Предварите вашу первую ссылку на путь такого рода словом "directory", как в "path directory". потребовалась минута, чтобы понять, что вы не имеете в виду путь (csh) или переменную PATH.

2

Предикат -path (и его регистронезависимый вариант -ipath) позволит вам выполнить поиск по всему дереву для точного текста.

2

выполните эти две команды, method1:

root@developer~:# updatedb

root@developer~:# locate /find/this/path

method2:

root@developer~:# tree |grep /find/this/path

результаты будут состоять из полного пути /find /this /path

также попробуйте это запустить из /

root@developer~:# cd /

root@developer~:/#updatedb
root@developer~:/#locate /find/this/path
root@developer~:/#tree |grep /find/this/path

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