Linux / Comando locate: buscar rutas en un índice de archivos

locate consulta un índice de rutas creado previamente. Evita recorrer el sistema de archivos en cada búsqueda, pero no refleja necesariamente los archivos creados, movidos o eliminados después de la última actualización del índice.

Compruebe la implementación con locate --version y sus opciones con locate --help. Para elegir entre búsquedas indexadas y otras herramientas, consulte la Lista de comandos de uso frecuente en Linux.

¿Qué es el comando locate?

El comando puede estar proporcionado por plocate, mlocate o GNU locate. updatedb y las tareas programadas mantienen la base según la configuración. Los permisos, las rutas excluidas y la interpretación de patrones dependen de la implementación. Por ejemplo, plocate exige coincidir con todos los patrones indicados, mientras que mlocate acepta por defecto cualquiera de ellos; no traslade esa lógica sin comprobarla.

Sintaxis básica

locate [OPCIONES] PATRÓN ...

Las opciones y el comportamiento detallado pueden variar según la implementación y la versión. En el sistema actual, consulte la descripción de los comandos instalados como locate --help y man locate.

Uso básico de locate

Buscar por parte del nombre

Encuentra rápidamente resultados donde el patrón coincide con parte de toda la ruta.

locate nginx.conf

Ignorar mayúsculas y minúsculas

En las implementaciones admitidas, -i no distingue entre mayúsculas y minúsculas.

locate -i readme.md

Mostrar solo las rutas que existen actualmente

-e o --existing comprueban la existencia de las rutas que ya están en el índice. Esto filtra entradas antiguas, pero no descubre archivos nuevos todavía sin indexar; el tratamiento de enlaces también varía entre implementaciones.

locate -e '*.service'

Por qué los resultados de búsqueda rápida no garantizan archivos recientes

locate busca en un índice de rutas previamente creado en lugar de rastrear directamente el disco actual. Ejemplos de sistemas incluidos en el índice:

locate /etc/passwd

Ejemplo de salida:

/etc/passwd

Los archivos nuevos pueden no ser visibles hasta que se actualice el índice, y los archivos eliminados pueden seguir apareciendo. Cuando no hay resultados, verifique el estado del índice y el patrón de búsqueda; si es importante la existencia actual, vuelva a verificar con find.

Opciones principales

Opciones Descripción
-i La búsqueda no distingue entre mayúsculas y minúsculas.
-e, --existing Mostrar solo los archivos que existen actualmente.
-b, --basename Buscar solo la parte final del nombre del archivo, no la ruta completa.
-c, --count Se imprime el número de coincidencias en lugar de los resultados.
-l N, --limit N Limita el número máximo de resultados.
-r REGEXP, --regexp REGEXP Busca con una expresión regular.
-d DBPATH Especifique la base de datos a buscar.

Ejemplos de uso práctico

Buscar lo más cercano posible al nombre exacto del archivo.

En el ejemplo de nombre exacto de mlocate, -b limita la comparación al nombre base y la barra invertida evita que se añadan comodines implícitos alrededor de hosts. Confirme esta interpretación en la ayuda de otras implementaciones.

locate -b '\hosts'

Limitar el número de resultados.

Contar o establecer un límite antes de mostrar demasiados resultados.

locate -c cache
locate -l 20 cache

Actualizar índice

La actualización de la base de datos completa del sistema puede requerir permisos y tiempo. Primero, consulte la política de tareas programadas de la distribución.

sudo updatedb

Comparación con los comandos relacionados con locate

Comando Rol principal Situaciones adecuadas
locate Búsqueda de nombres basada en índice Búsqueda rápida de rutas
find Búsqueda directa en el sistema de archivos actual Estado más reciente y varias condiciones
which Búsqueda de archivos ejecutables en PATH Verificación de la ruta de ejecución
whereis Búsqueda de rutas estándar relacionadas con el programa Buscar binarios, código fuente y manuales

Precauciones al usar

Los resultados pueden no estar actualizados

Las rutas que se crean, mueven o eliminan después de la indexación pueden estar faltantes o permanecer.

Se consideran los permisos y la información personal

Según la forma en que se construya la base de datos, se aplican configuraciones que limitan la exposición de la ruta a otros usuarios.

Verificar las opciones según la implementación

plocate, mlocate y GNU locate tienen muchas funciones en común, pero las opciones detalladas y la interpretación de patrones pueden diferir.

FAQ

¿Por qué no está instalado el comando locate?

Algunas distribuciones no lo instalan por defecto. El nombre del paquete puede ser plocate o mlocate.

¿Por qué no se encuentra un archivo que acabo de crear?

El archivo puede ser posterior a la última actualización del índice o estar en una ruta excluida. Para comprobar su existencia en ese momento, use find sobre la ubicación apropiada.

¿Es necesario ejecutar updatedb con sudo?

El índice de todo el sistema generalmente requiere privilegios de administrador, pero según la implementación y configuración, también se puede crear una base de datos de usuario.

¿Por qué los archivos eliminados permanecen en los resultados?

Este es un elemento de índice antiguo. Verifique su existencia con -e o actualice la base de datos.

Documentación oficial