Risposte:
La risposta dipende dalla versione locateche stai utilizzando, ma c'è una buona probabilità che sia mlocate, la cui updatedbesecuzione 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 ctimeo mtime, a seconda di quale è più recente.)
Come la maggior parte delle implementazioni di updatedb, mlocatesalterà anche i file system e i percorsi che è configurato per ignorare. Di default non ce ne sono nel mlocatecaso, ma le distribuzioni in genere forniscono una base updatedb.confche 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 ).
mtimesuo genitore immediato.
mlocatese ne preoccupa ctimee mtimeciò 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 ?
locatenon lo è grep -R. Non legge il contenuto del file.
Oltre a controllare i tempi di modifica, mlocateignora 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 ):
updatedbimplementazioni supportano anche le esclusioni configurate.)