Instalación y uso de comando locate en GNU/Linux

En entornos GNU/Linux, el comando locate es una muy buena herramienta para localizar carpetas/directorios y archivos. Utiliza una base de datos actualizada del sistema, a diferencia del comando find que busca sin índices, por lo que el comando locate es mucho más rápido y eficaz sobre todo si tenemos un sistema con pocos recursos y/o con alta demanda. El único punto negativo del comando locate es si su base datos no existe, está desactualizada o corrupta.

Instalación

Para instalar* en distribuciones Debian (Kubuntu, Ubuntu):

1
[usuario@host ~]$ sudo apt-get install mlocate

*Necesitamos permisos de administración (root)

Para instalar* en distribuciones RHEL (RedHat, Fedora, Centos, CentOS Stream, AlmaLinux, Rocky):

1
[usuario@host ~]$ sudo yum install mlocate -y

*Necesitamos permisos de administración (root)

Si deseamos buscar alguna carpeta/directorio y/o archivo:

  • Para buscar un archivo llamado exactamente archivo.txt:

1
[usuario@host ~]$ locate archivo.txt

  • Para buscar cualquier archivo y/o directorio que contenga la palabra “reporte” en su nombre:

1
[usuario@host ~]$ locate reporte

  • Para buscar cualquier archivo y/o directorio que contenga la palabra “reporte” en su nombre sin distinguir entre mayúsculas y minúsculas:

1
[usuario@host ~]$ locate -i reporte

Si es la primera vez que lo ejecutamos nos dará el siguiente error:

1
[usuario@host ~]$ locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory

Lo podemos corregir con el siguiente comando:

1
[usuario@host ~]$ sudo updatedb && locate -e bench-repo

Ahora sí procedemos a buscar lo que desees.

Parámetros adicionales

  • -c: Muestra el número de archivos encontrados en lugar de listar los archivos.
  • -r: Permite usar expresiones regulares para la búsqueda.
  • -b: Busca solo en el nombre base del archivo (sin la ruta).

Conclusión

El comando locate es una gran herramienta muy rápida a comparación del comando find, sin embargo el comando locate busca en una base de datos por lo que los resultados pueden ser los que no esperas o precisos (puede estar desactualizada, corrupta o vacía).

Otro inconveniente es que el comando locate solo te mostrará a los archivos a los que tu usuario tiene acceso. El comando Locate es bueno para búsquedas de carpetas/directorios y/o archivos pero no podrá ser mejor que el comando find.