17

Я пытаюсь найти каталог с именем 480debugerror вложенный в дочерние каталоги. Я не знаю точный путь, или даже если у меня есть точное написание каталога, который я хочу найти.

Существует ли команда Linux для поиска каталогов с заданным префиксом или суффиксом, например, каталогов с именем "debug" или "debug error", с некоторым неизвестным префиксом или суффиксом?

4 ответа4

14

find то, что вам нужно:

$ find -type d -name '*debugerror*'

или же

$ find -type d -name '480debugerror'

если вы уверены в названии папки.

7
find . -type d \( -iname '*error*' -o -iname '*debug*' \) 
1
locate -i "480debugerror"

проверит базу данных, в которой перечислены все файлы, проиндексированные на вашем компьютере. У меня часто бывают такие сценарии, и поэтому я выполняю такие поиски:

locate -i "debug" | grep -i "log"

который находит все файлы, которые имеют в своем пути (независимо от регистра [это то, что означает -i]) "debug" и "log" (если вы не знаете, | grep означает поиск в результатах, которые производит locate)

Преимущество использования locate по сравнению с find состоит в том, что locate будет производить вывод намного быстрее (поскольку он только проверяет базу данных), но если файл / папка не проиндексирован, он ничего не найдет. (для обновления базы данных вы можете использовать sudo updatedb)

1

В Баш,

shopt -s nullglob globstar
echo **/*480*/
echo **/*debug*/
echo **/*error*/

рекурсивно ищет каталоги с именами, содержащими 480, отладка или ошибка.

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