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 usareupdatedbper aggiornare lo slocate Banca dati. Esecuzione dilocateagain ora troverà il file appena creato. Pertanto, molti amministratori di sistema Linux usano uncronlavoro 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. :)