Команда Linux locate
Команда Linux locate используется для поиска документов, соответствующих критериям. Она ищет в базе данных, хранящей имена документов и каталогов, документы или каталоги, соответствующие шаблону.
В общем случае, нам нужно только ввестиlocate your_file_nameчтобы найти указанный файл.
Синтаксис
locate [-d ][--help][--version][范本样式...]
Параметры:
- -b, --basename -- Сопоставлять только базовое имя пути
- -c, --count -- Выводить только количество найденных совпадений
- -d, --database DBPATH -- Использовать базу данных, указанную в DBPATH, вместо базы данных по умолчанию /var/lib/mlocate/mlocate.db
- -e, --existing -- Выводить только записи для существующих в данный момент файлов
- -1 -- Если значение равно 1, включить безопасный режим. В безопасном режиме пользователи не будут видеть файлы, на просмотр которых у них нет прав. Это снизит скорость, поскольку locate должен получать данные о правах доступа к файлам из реальной файловой системы.
- -0, --null -- Разделять записи символом NUL при выводе
- -S, --statistics -- Не искать записи, выводить статистику по каждой базе данных
- -q -- Тихий режим, сообщения об ошибках не выводятся
- -P, --nofollow, -H -- При проверке существования файла не переходить по конечным символическим ссылкам
- -l, --limit, -n LIMIT -- Ограничить вывод (или подсчёт) до LIMIT записей
- -n -- Выводить не более n результатов
- -m, --mmap -- Игнорируется для обратной совместимости
- -r, --regexp REGEXP -- Использовать базовое регулярное выражение
- --regex -- Использовать расширенное регулярное выражение
- -q, --quiet -- Тихий режим, сообщения об ошибках не будут отображаться
- -s, --stdio -- Игнорируется для обратной совместимости
- -o -- Указать имя базы данных
- -h, --help -- Показать справку
- -i, --ignore-case -- Игнорировать регистр
- -V, --version -- Показать информацию о версии
Примеры
Чтобы найти файл passwd, введите следующую команду:
locate passwd
Найдите в каталоге etc все файлы, начинающиеся с sh:
locate /etc/sh
Игнорируйте регистр и найдите в текущем каталоге пользователя все файлы, начинающиеся с r:
locate -i ~/r
Дополнительные примечания
отличается от find: find ищет на жестком диске, тогда как locate ищет только в базе данных /var/lib/slocate.
locate быстрее, чем find. На самом деле он не выполняет поиск, а обращается к базе данных. Обычно база данных файлов находится в /var/lib/slocate/slocate.db, поэтому поиск locate не работает в реальном времени, а основан на обновлении базы данных. Обычно система поддерживает её самостоятельно, а также можно вручную обновить базу данных с помощью команды:
updatedb
По умолчанию updatedb выполняется один раз в день.
Другие расширения
Справочник команд Linux