find búsquedas en el sistema real. Es más lento pero siempre actualizado y tiene más opciones (tamaño, tiempo de modificación,...)
locate utiliza una base de datos construida previamente (comando updatedb ). Es mucho más rápido, pero usa una base de datos 'más antigua' y busca solo nombres o partes de ellos.
En cualquier caso, man find y man locate te ayudará más.
Tanto el locate y find los comandos encontrarán un archivo, pero funcionan de maneras bastante diferentes.
locate funcionará en modo fuera de línea:
- Para una explicación simple, la base de datos de indexación de archivos en el sistema Unix se llama slocate enumerará las ubicaciones de todos los archivos que se envían con el sistema Unix. Cuando ejecutas
locate, usará esa base de datos para buscar un archivo en particular. El problema conlocatees si acaba de crear un archivo que ahora desea buscar, ubique no funcionará porque slocate la base de datos no está actualizada. Para superar este problema, puede usarupdatedbpara actualizar el slocate base de datos. Ejecutandolocatede nuevo ahora encontrará el archivo recién creado. Por lo tanto, muchos administradores de sistemas Linux usan uncrontrabajo para actualizar regularmente el slocate base de datos.
find funcionará en modo en línea/"en tiempo real".
- Realmente irá y buscará en todos los directorios para encontrar el archivo específico especificado y examinará cada archivo uno por uno. Por lo tanto, requiere muchas llamadas de E/S.
Entonces, según la naturaleza, está claro que localizar es más rápido que encontrar, pero encontrar es en tiempo real.
Espero que esto ayude a aclarar la idea. Mis mejores deseos. :)