Ответы:
Ответ зависит от версии locateвы используете, но есть шанс , что это mlocate, чей updatedbбежит быстро, избегая делать полное сканирование диска:
mlocate является реализацией locate / updatedb. «M» означает «объединение»: updatedb повторно использует существующую базу данных, чтобы избежать перечитывания большей части файловой системы, что делает updatedb быстрее и не перегружает системный кэш.
(В базе данных хранится метка времени каждого каталога, ctimeили mtime, в зависимости от того, что новее.)
Как и большинство реализаций updatedb, mlocate's' также пропускает файловые системы и пути, которые он настроил игнорировать. По умолчанию нет ни в mlocateслучае «S, но дистрибутивы обычно обеспечивают основной , updatedb.confкоторый игнорирует сетевые файловые системы, виртуальные файловые системы и т.д. (см файл конфигурации в Debian , например, это является стандартной практикой в Debian, так ГНУ updatedbбудет выполнено аналогично ).
mtimeего непосредственного родителя.
mlocateзаботится о ctimeи mtimeчто означает , что заботится только о том списка записей каталога по - прежнему те же (не удалены или добавлены файлы), что означает , что не заботится о фактических самих файлов. Это верно ?
locateне grep -R. Он не читает содержимое файла.
В дополнение к проверке времени модификации, mlocateтакже игнорируются некоторые поддеревья файловой системы, которые имеют много неинтересных или потенциально дублирующих файлов, как указано в /etc/updatedb.conf (и описано в man updatedb.conf ):
updatedbреализации также поддерживают настроенные исключения.)