De las bondades de locate no hace falta que hable, ya que es una de las piedras angulares, junto con find, en la búsqueda de ficheros en sistemas GNU/linux. Sin embargo, es posible que muchos de vosotros no hayáis oído hablar de su primo el de zumosol: mlocate.
mlocate es una implementación relativamente nueva de locate que permite encontrar archivos en cualquier parte del sistema basándose en su nombre o en base a un patrón fijo o expresión regular. Su funcionamiento se apoya en una base de datos que habrá que generar tras la instalación (mlocate.db) y que se actualiza automáticamente mediante el demonio cron.
Según el manual, sus ventajas frente a locate son las siguientes:
1) Indexa todo el sistema de archivos, pero los resultados de la búsqueda sólo incluyen a los archivos a los que tiene acceso el usuario que ejecuta locate. Esto lo hace actualizando la base de datos como root, pero haciéndola ilegible para los usuarios normales, que pueden acceder a ella a través del binario de locate. slocate también hace esto, pero el locate original no.
2) En lugar de releer todo el contenido de todos los directorios cada vez que se actualiza la base de datos, mlocate guarda información de las marcas de tiempo en su base de datos y puede saber si el contenido de un directorio ha cambiado sin leerlo de nuevo. Esto hace que las actualizaciones sean mucho más rápidas y hagan menos peticiones al disco duro. Esta característica sólo
la tiene mlocate.
Para su instalación en Debian basta con teclear:
#aptitude install mlocate
Y una vez instalado, generar la base de datos y añadir la orden de actualización a cron. Ambas se realizan de forma casi automática con tan sólo ejecutar:
[# /etc/cron.daily/mlocate
Podéis encontrar más información al respecto en la web del proyecto.
¡Que aproveche! 😉
2 ideas sobre “mlocate: una nueva implementación de locate”
y la diferencia con locate es.? pon algunos ejemplos tio .. 😛
A grandes rasgos, las diferencias entre locate, slocate y mlocate estriban en cómo se usa y genera la base de datos en la que basan su funcionamiento. En los tres casos se genera mediante updatedb, pero para locate no se guardan permisos, con lo que cualquiera podría acceder al contenido de dicha BBDD;en slocate, ya se soluciona esto, y se añaden permisos, de tal forma que sólo se muestran los resultados de los archivos a los que tiene acceso el usuario, y en mlocate, además de lo anterior, se optimiza la forma en que se actualiza la base de datos, ya que en lugar de reescribirla entera sólo guarda las diferencias con la original. A parte mlocate presenta la ventaja indicada en el punto 2) más arriba.
Seguro que en Google venía más y mejor explicado, ¡cacho vago! xDD
(Es broma, tienes razón en que debía haber hablado un poco más de las diferencias entre las 3).
¡Saaaludos!