Una de las operaciones más comunes cuando se trabaja en Linux es buscar archivos y directorios. Existen varios comandos en los sistemas Linux que le permiten buscar archivos, siendo encontrar y localizar los más utilizados.
El locate
El comando es la forma más rápida y sencilla de buscar archivos y directorios por sus nombres.
En este artículo, explicaremos cómo usar el locate
comando.
Instalando locate
(comando de localización no encontrado) #
Según la distribución y cómo se aprovisionó el sistema, el paquete de localización puede o no estar preinstalado en su sistema Linux.
Para verificar si el locate
la utilidad está instalada, abra su terminal, escriba locate
y presiona Enter
. Si el paquete está instalado, el sistema mostrará locate: no pattern to search for specified
. De lo contrario, verá algo como locate command not found
.
Si locate
no está instalado, puedes instalarlo fácilmente usando el administrador de paquetes de tu distribución.
Instalar locate
en Ubuntu y Debian #
sudo apt update
sudo apt install mlocate
Instalar locate
en CentOS y Fedora #
sudo yum install mlocate
¿Cómo funciona locate
? Trabajo #
El locate
El comando busca un patrón determinado a través de un archivo de base de datos generado por updatedb
dominio. Los resultados encontrados se muestran en la pantalla, uno por línea.
Durante la instalación del paquete mlocate, se crea un trabajo cron que ejecuta el updatedb
comando cada 24 horas. Esto asegura que la base de datos se actualice periódicamente. Para obtener más información sobre el trabajo cron, consulte /etc/cron.daily/mlocate
archivo.
La base de datos se puede actualizar manualmente ejecutando updatedb
como root o usuario con privilegios sudo:
sudo updatedb
El proceso de actualización llevará algún tiempo, según la cantidad de archivos y directorios y la velocidad de su sistema.
Los archivos creados después de la actualización de la base de datos no se mostrarán en los resultados de localización.
En comparación con el find
más poderoso comando que busca en el sistema de archivos, locate
funciona mucho más rápido pero carece de muchas funciones y solo puede buscar por el nombre del archivo.
Cómo usar locate
Comando #
La sintaxis para locate
El comando es el siguiente:
locate [OPTION] PATTERN...
En su forma más básica, cuando se usa sin ninguna opción, locate
El comando imprimirá la ruta absoluta de todos los archivos y directorios que coincidan con el patrón de búsqueda y para los cuales el usuario tiene permiso de lectura.
Por ejemplo, para buscar un archivo llamado .bashrc
escribirías:
locate .bashrc
La salida incluirá los nombres de todos los archivos que contengan la cadena .bashrc
en sus nombres:
/etc/bash.bashrc
/etc/skel/.bashrc
/home/linuxize/.bashrc
/usr/share/base-files/dot.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/bash.bashrc
/usr/share/doc/adduser/examples/adduser.local.conf.examples/skel/dot.bashrc
El /root/.bashrc
El archivo no se mostrará porque ejecutamos el comando como un usuario normal que no tiene permisos de acceso a /root
directorio.
Si la lista de resultados es larga, para una mejor legibilidad, puede canalizar la salida a less
comando:
locate .bashrc | less
El locate
El comando también acepta patrones que contienen caracteres globales como el carácter comodín *
. Cuando el patrón no contiene caracteres globales, el comando busca *PATTERN*
. Por eso, en el ejemplo anterior, se mostraron todos los archivos que contenían el patrón de búsqueda en sus nombres.
El comodín es un símbolo que se utiliza para representar cero, uno o más caracteres. Por ejemplo, para buscar todos los .md
archivos en el sistema, escribiría:
locate *.md
Para limitar los resultados de búsqueda, use -n
seguida del número de resultados que desea que se muestren. El siguiente comando buscará todos los .py
archivos y mostrar solo 10 resultados:
locate -n 10 *.py
Por defecto, locate
realiza búsquedas sensibles a mayúsculas y minúsculas. El -i
(--ignore-case
) opción le dice a locate
para ignorar mayúsculas y minúsculas y ejecutar una búsqueda que no distinga entre mayúsculas y minúsculas.
locate -i readme.md
/home/linuxize/p1/readme.md
/home/linuxize/p2/README.md
/home/linuxize/p3/ReadMe.md
Para mostrar el recuento de todas las entradas coincidentes, use -c
(--count
) opción. El siguiente comando devolvería el número de todos los archivos que contienen .bashrc
en sus nombres:
locate -c .bashrc
6
Por defecto, locate
no comprueba si los archivos encontrados todavía existen en el sistema de archivos. Si eliminó un archivo después de la última actualización de la base de datos y si el archivo coincide con el patrón de búsqueda, se incluirá en los resultados de la búsqueda.
Para mostrar solo los nombres de los archivos que existen en el momento locate
se ejecuta, use -e
(--existing
) opción. Por ejemplo, lo siguiente devolvería solo el .json
existente archivos:
locate -e *.json
Si necesita realizar una búsqueda más compleja, utilice -r
(--regexp
), que le permite buscar usando una expresión regular básica en lugar de patrones. Esta opción se puede especificar varias veces.
Por ejemplo, para buscar todos los .mp4
y .avi
archivos en su sistema e ignorar mayúsculas y minúsculas, ejecutaría:
locate --regex -i "(\.mp4|\.avi)"
Conclusión #
El locate
El comando busca en el sistema de archivos archivos y directorios cuyo nombre coincida con un patrón dado. La sintaxis del comando es fácil de recordar y los resultados se muestran casi al instante.
Para más información sobre todas las opciones disponibles de locate
tipo de comando man locate
en tu terminal.
Si tiene alguna pregunta, no dude en dejar un comentario.