Как я могу рекурсивно искать имена каталогов с определенной строкой, где строка является только частью имени каталога

Как я могу рекурсивно искать имена каталогов с определенной строкой, где строка является только частью имени каталога?

Например: имя каталога «8.0.3-99966_ru», но я хочу рекурсивно искать каталоги со строкой "99966".

77
задан 19 June 2012 в 21:31

4 ответа

Вы можете направить вывод на grep, чтобы он выделил имя каталога
Что-то вроде

find / -type d | grep "directory name"

/ указывает на поиск во всем компьютере

0
ответ дан 19 June 2012 в 21:31

Вы можете использовать команду find:

find YOUR_STARTING_DIRECTORY -type d -name "*99966*" -print

Пример:

find ~ -type d -name "*99966*" -print

должен найти все каталоги (-type d), начиная с вашего домашнего каталога (~) ), имена которых содержат строку «99966» (-name "*99966*") и выводят их (-print).

0
ответ дан 19 June 2012 в 21:31

Простой способ сделать это - использовать find | egrep string. Если хитов слишком много, используйте флаг -type d для поиска. Запустите команду в начале дерева каталогов, которое вы хотите найти, или вам также потребуется указать каталог в качестве аргумента для find.

Еще один способ сделать это - использовать ls -laR | egrep ^d.

И команда locate также пригодится: locate string

0
ответ дан 19 June 2012 в 21:31

Для предотвращения всего "Разрешения, отклоненного" результаты, можно использовать:

find / -type d -name "*99966*" -print 2>/dev/null

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

21
ответ дан 19 June 2012 в 21:31

Другие вопросы по тегам:

Похожие вопросы: