Respostas:
A resposta depende da versão de locate
que você está usando, mas há uma boa chance é mlocate
, cujo updatedb
corre rapidamente, evitando fazer varreduras disco cheio:
mlocate é uma implementação de localização / atualizaçãob. O 'm' significa "mesclagem": updatedb reutiliza o banco de dados existente para evitar a releitura da maior parte do sistema de arquivos, o que torna o updateb mais rápido e o lixo do cache do sistema.
(O banco de dados armazena o registro de data e hora de cada diretório ctime
ou mtime
, o que for mais recente.)
Como a maioria das implementações de updatedb
, o mlocate
's também ignorará os sistemas de arquivos e os caminhos que ele está configurado para ignorar. Por padrão, não há nenhum mlocate
caso, mas as distribuições geralmente fornecem um básico updatedb.conf
que ignora os sistemas de arquivos em rede, sistemas de arquivos virtuais etc. (veja o arquivo de configuração do Debian, por exemplo; esta é uma prática padrão no Debian, portanto o GNU updatedb
é configurado da mesma forma ).
mtime
de seu pai imediato.
mlocate
importa-se ctime
e o mtime
que implica apenas se a lista de entradas do diretório ainda é a mesma (sem arquivos removidos ou adicionados), o que significa que ela não se importa com os arquivos reais. Isso está correto?
locate
não é grep -R
. Não lê o conteúdo do arquivo.
Além de verificar os tempos de modificação, mlocate
também ignora certas subárvores do sistema de arquivos que possuem muitos arquivos desinteressantes ou potencialmente duplicados, conforme especificado em /etc/updatedb.conf (e descrito em man updatedb.conf ):
updatedb
implementações também suportam exclusões configuradas.)