Как искать файлы, содержащие определенное слово?

Как искать файлы, содержащие определенное слово?

С помощью командной строки у вас есть несколько вариантов. 3, которые я использую чаще всего, - это...

  1. locate {part_of_word}

    Это предполагает, что ваша база данных locate обновлена, но вы можете обновить ее вручную с помощью: sudo updatedb

  2. grep как объяснил dr_willis.Одно замечание: -R после grep также выполняется поиск в каталогах.Пример:

    cd\grep -R {something_to_look_for} {where_to_look_in}
  3. find . -name '*{part_of_word}*' -print

Где . это каталог, в котором вы находитесь в данный момент, и * это подстановочный знак.

О, и вы также можете комбинировать это. Пример: locate {something}|grep {some_part_of_something}|more

Если я правильно помню: locate является самым быстрым (при условии, что ваша база данных обновлена) и find это самый медленный из них. И grep это самый сложный, но и самый универсальный из них, поскольку вы можете использовать регулярные выражения.

grep -R "что" "где"

пример:

grep -R hello /home

Вы можете использовать grep чтобы перечислить файлы, содержащие word в данном directory:

grep -Ril word directory

Здесь:
* -R рекурсивный поиск файлов в подкаталогах.
* -i игнорировать регистр текста
* -l показывать имена файлов вместо частей содержимого файлов. (примечание: -L показывает имена файлов, которые не содержат этого слова).

использовать man grep чтобы получить все варианты

Для этого обычно используется команда grep.

имя ФАЙЛА ШАБЛОНА grep

и grep может выполнять очень сложный поиск.

willis@Cow:~$ grep --helpUsage: grep [OPTION]... PATTERN [FILE]...Search for PATTERN in each FILE or standard input.PATTERN is, by default, a basic regular expression (BRE).Example: grep -i 'hello world' menu.h main.c

Вы на самом деле имеете в виду поиск ИМЕН файлов, содержащих в них определенное слово? ie: все файлы, в названиях которых есть термин FUN, , FUN_time.txt FUN_stuff.txt Или искать внутри файла конкретные слова?