Команда locate
не выполняет поиск в содержимом файлов, как grep
(и другие команды). Это просто поиск внутри путей к файлам.
locate
работает с использованием кеш-индекса путей к файлам, и этот индекс часто обновляется утилитой updatedb
.
добавления
Полезный способ поиска некоторого шаблона внутри (содержимого) некоторых файлов заключается в использовании способности zsh
или некоторых последних версий bash
для расширения шаблона файла **
, например, например.
grep foo ~/gee/**/*.[ch]
с zsh этот поиск во всех файлах с именами *.c
или *.h
в $HOME/gee/
, содержащих foo
. Я нахожу эту функцию чрезвычайно полезной и оправдываю только принятие zsh в качестве моей интерактивной оболочки. С другими оболочками вы можете набрать намного длиннее
find $HOME/gee -name '*.ch' | xargs grep foo