Introducción
Una de las operaciones más comunes cuando se trabaja en Linux es buscar archivos y directorios. En los sistemas Linux, existen varios comandos que te permiten buscar archivos, siendo los más utilizados los encontrar y localizar.
El comando de localización es la forma más rápida y sencilla de buscar archivos y directorios por sus nombres.
En este tutorial, explicaremos cómo usar el comando de localización.
Localizar la instalación del comando
Dependiendo de su distribución y de cómo se haya aprovisionado su sistema, el paquete de localización puede o no venir preinstalado en su sistema Linux.
Para verificar si la utilidad de localización está instalada en su sistema, abra el terminal, escriba localizar y presione ENTER. Si el paquete está instalado, verá el sistema de localización: ningún patrón para buscar especificado, de lo contrario, verá algo como el comando de localización no encontrado.
Si Locate no está instalado, puede instalarlo fácilmente usando el administrador de paquetes de su distribución.
Instalar localizar en Ubuntu y Debian
sudo apt update
sudo apt install mlocate
Instalar localizar en CentOS y Fedora
sudo yum install mlocate
Como ubicar
El comando de localización busca un patrón particular a través de un archivo de base de datos generado por el comando updatedb. 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 comando updatedb cada 24 horas. Esto asegura que la base de datos se actualice periódicamente. Para obtener más información sobre el proceso cron, consulte el archivo /etc/cron.daily/mlocate.
La base de datos se puede actualizar manualmente ejecutando el comando updatedb como root o usuario con privilegios de sudo:
sudo updatedb
El proceso de actualización llevará algún tiempo, dependiendo de la cantidad de archivos y directorios y la velocidad del sistema.
Los archivos creados después de la actualización de la base de datos no aparecerán en los resultados del descubrimiento.
En comparación con el comando de búsqueda, que es más poderoso y busca sistemas de archivos, localizar funciona mucho más rápido pero carece de muchas funciones y solo puede buscar por nombre de archivo.
Cómo utilizar el comando de localización
La sintaxis del comando de localización es la siguiente:
locate [OPTION] PATTERN...
En su forma más simple, si se usa sin ninguna opción, el comando de localización imprimirá la ruta absoluta a todos los archivos y directorios que coinciden 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, debe escribir:
locate.bashrc
La salida incluirá los nombres de todos los archivos que contienen la cadena .bashrc en sus nombres:
/etc/bash.bashrc
/etc/skel/.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 archivo /root/.bashrc no aparecerá porque ejecutamos el comando como un usuario normal que no tiene permisos de acceso al directorio /root.
Si la lista de resultados es larga, puede redirigir la salida al comando less para una mejor legibilidad:
locate.bashrc | less
El comando de localización también acepta patrones que contienen caracteres globales como el comodín *. Cuando el patrón no contiene ningún carácter desordenado, el comando busca * PATTERN *, por lo que en el ejemplo anterior se muestran todos los archivos que contienen 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 archivos.md en el sistema, debe usar:
locate *.md
Para restringir los resultados de la búsqueda, use la opción -n seguida del número de resultados que desea mostrar. Por ejemplo, el siguiente comando buscará todos los archivos.py y mostrará solo 10 resultados:
locate -n 10 *.py
De forma predeterminada, Locate realiza búsquedas que distinguen entre mayúsculas y minúsculas. La opción -i ( --ignore-case ) indica a Locate que ignore las mayúsculas y que realice búsquedas que no distingan entre mayúsculas y minúsculas.
locate -i readme.md
/home/noviello/p1/readme.md
/home/noviello/p2/README.md
Para ver el recuento de todas las entradas coincidentes, use la opción -c (--count). El siguiente comando devolvería el número de todos los archivos que contienen .bashrc en sus nombres:
locate -c.bashrc
5
De forma predeterminada, localizar no comprueba si los archivos encontrados todavía existen en el sistema de archivos. Si se eliminó un archivo después de la última actualización de la base de datos 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 del archivo existente cuando lo ubique, use la opción '-e (--existente). Por ejemplo, lo siguiente solo devolvería archivos .json existentes:
locate -e *.json
Si necesita realizar una búsqueda más compleja, puede usar la opción -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 dos tipos de extensión de archivo, busque todos los archivos .mp4 y.avi:
locate --regex -i "(\.mp4|\.avi)"
Conclusión
El comando de localización busca en el sistema de archivos archivos y directorios cuyos nombres coincidan con un patrón particular. La sintaxis del comando es fácil de recordar y los resultados se muestran casi instantáneamente.
Para obtener más información sobre el comando de localización , escriba man localizar en la terminal.