find
ricerche nel sistema reale. È più lento ma sempre aggiornato e ha più opzioni (dimensione, tempo di modifica,...)
locate
utilizza un database creato in precedenza (comando updatedb
). È molto più veloce, ma utilizza un database "vecchio" e cerca solo nomi o parti di essi.
In ogni caso, man find
e man locate
ti aiuterà ulteriormente.
Sia il locate
e find
i comandi troveranno un file, ma funzionano in modi molto diversi.
locate
funzionerà in modalità offline:
- Per una semplice spiegazione, il database di indicizzazione dei file nel sistema Unix chiamato slocate elencherà le posizioni di tutti i file forniti con il sistema Unix. Quando esegui
locate
, utilizzerà tale database per cercare un determinato file. Il problema conlocate
è se hai appena creato un file che ora vuoi cercare, localizza non funzionerà perché slocate il database non è aggiornato. Per superare questo problema, puoi usareupdatedb
per aggiornare lo slocate Banca dati. Esecuzione dilocate
again ora troverà il file appena creato. Pertanto, molti amministratori di sistema Linux usano uncron
lavoro per aggiornare regolarmente lo slocate database.
find
funzionerà in modalità online/"in tempo reale".
- In realtà andrà a cercare in tutte le directory per trovare il particolare file specificato ed esaminerà ogni file uno per uno. Pertanto, richiede molte chiamate I/O.
Quindi, in base alla natura, è chiaro che individuare è più veloce di trovare, ma trovare è in tempo reale.
Spero che questo aiuti a chiarire l'idea. Ti auguro il meglio. :)