Risposte:
La risposta dipende dalla versione locate
che stai utilizzando, ma c'è una buona probabilità che sia mlocate
, la cui updatedb
esecuzione si esegue rapidamente evitando di eseguire scansioni complete del disco:
mlocate è un'implementazione di individuazione / aggiornamento. La 'm' sta per "fusione": updatedb riutilizza il database esistente per evitare di rileggere la maggior parte del file system, il che rende updateb più veloce e non distrugge la cache del sistema.
(Il database memorizza il timestamp di ogni directory ctime
o mtime
, a seconda di quale è più recente.)
Come la maggior parte delle implementazioni di updatedb
, mlocate
salterà anche i file system e i percorsi che è configurato per ignorare. Di default non ce ne sono nel mlocate
caso, ma le distribuzioni in genere forniscono una base updatedb.conf
che ignora i file system in rete, i file system virtuali ecc. (Vedere il file di configurazione di Debian per esempio; questa è una pratica standard in Debian, quindi quella di GNU updatedb
è configurata in modo simile ).
mtime
suo genitore immediato.
mlocate
se ne preoccupa ctime
e mtime
ciò implica che si preoccupi solo del fatto che l'elenco delle voci della directory sia sempre lo stesso (nessun file rimosso o aggiunto), il che significa che non importa dei file effettivi stessi. È corretto ?
locate
non lo è grep -R
. Non legge il contenuto del file.
Oltre a controllare i tempi di modifica, mlocate
ignora anche alcuni sottoalberi del file system che hanno molti file non interessanti o potenzialmente duplicati, come specificato in /etc/updatedb.conf (e descritto in man updatedb.conf ):
updatedb
implementazioni supportano anche le esclusioni configurate.)