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.