Ubuntu для чайников. Команда locate

 locate принимает в качестве параметра имя файла (или часть имени) и моментально 

выводит список путей до этого файла в файловой системе; альтернативой этой 
программе является find, но разница между ними заключается в том, что find 
производит поиск по файловой системе и требуется значительный период времени для 
получения результата, а отличие в работе этих программ состоит в том, что locate 
использует собственную базу данных для хранения имен файлов в то время, как find 
исследует директории в поисках заданного параметром командной строки имени файла.
Команда locate является очень простой в использовании. Все, что вам нужно сделать, 
это ввести имя файла, который вы хотите найти .
Может такое произойти что locate не найдет ничего а find найдет, причина в том
что база данных не обновлена, точнее последний раз она была обновлена перед тем
как был создан тот файл который нужно найти.

sudo updatedb          обновить базу данных
locate "*text*"        найти все файлы, которые имеют в своём названии строку "text"
locate –c "*file*"     показать количество совпадающих записей

если файл был удален, но не была обновлена база данных, то поиск выдат что файл в базе есть,
но реально его нет, тут нужно или обновить базу(вопрос спорный) или выполнять поиск так
locate –e "*tosearch*"
locate –i "*file*"    найти все файлы с совпадениями игнорируя регистр
locate -r /file$    искать точное имя файла (по умолчанию, когда ищите файл с помощью команды locate, то имя - это неявно заменяется на *file*)
locate -b "file"     возвращать только файлы, содержащие сам запрос, вместо того чтобы выводить каждый файл, который содержит запрос в ведущих к нему каталогах
locate --statistics  просмотреть статистику, занесенную командой locate в каталог
locate .php -n 10    вывести только 10 результатов поиска
locate -0 "file"     указывает locate генерировать нулевые разделители вместо пробелов (поэтому он может обрабатывать имена файлов, которые содержат пробелы)
locate -eb0P "file" | xargs -r0 ls -ald  вывести подробную информацию о файлах
sudo updatedb -o ~/new_locatedb.db    создать новую базу данных в корне домашней директории
locate -d ~/new_locatedb.db "*file*"    искать в указанной базе
locate -d ~/new_locatedb.db: "*file*"     искать в указанной базе, и сделать поиск в ней по умолчанию :

Комментарии