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 conlocate
es 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 usarupdatedb
para actualizar el slocate base de datos. Ejecutandolocate
de nuevo ahora encontrará el archivo recién creado. Por lo tanto, muchos administradores de sistemas Linux usan uncron
trabajo 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. :)