Как искать файлы, содержащие определенное слово?
С помощью командной строки у вас есть несколько вариантов. 3, которые я использую чаще всего, - это...
-
locate {part_of_word}
Это предполагает, что ваша база данных locate обновлена, но вы можете обновить ее вручную с помощью:
sudo updatedb
-
grep
как объяснил dr_willis.Одно замечание:-R
послеgrep
также выполняется поиск в каталогах.Пример:cd\grep -R {something_to_look_for} {where_to_look_in}
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 Или искать внутри файла конкретные слова?