Uso de los comandos find, locate, which y whereis para buscar archivos en Linux

Bg1

Hay varias formas de encontrar y localizar archivos desde la terminal en Linux, y find, locate, which y whereis son algunos de los comandos comúnmente utilizados para hacerlo. Echemos un vistazo a estos cuatro comandos de búsqueda, sus similitudes y diferencias.

1. find

El enfoque directo para buscar archivos dentro de un directorio especificado es usar el comando find. Si el directorio para realizar la búsqueda no se especifica explícitamente, entonces la búsqueda se realizará en el directorio actual.

La siguiente captura de pantalla muestra cómo, dentro del directorio actual (.), se realiza una búsqueda de todos los nombres de archivo que terminan con la extensión .txt.

Compare Find

La búsqueda también se puede realizar en función de marcas de tiempo, permisos de archivo, tamaño de archivo, tipo de archivo, propietario del archivo, etc. Se pueden usar expresiones regulares para controlar los parámetros de búsqueda. Instrucciones más detalladas sobre el comando find se pueden encontrar aquí.

2. locate

Este comando es otra forma de encontrar archivos por nombre. El comando anterior busca en el directorio especificado y luego proporciona los resultados al usuario. Esta herramienta realiza la búsqueda contra una base de datos llamada “mlocate.db,” que se encuentra en “/var/lib/mlocate/mlocate.db.” Esta base de datos se actualiza cada mañana mediante la utilidad cron.

El comando se ejecuta más rápido que find porque la búsqueda se realiza contra una base de datos existente que ya ha curado la lista de todos los archivos y directorios en el sistema.

locate seguido del nombre del archivo muestra el nombre de ruta absoluto donde existe ese archivo.

Supongamos que se ha creado un script en el directorio home.

Si intentamos localizar el script recién creado y copiado, no obtendríamos ninguna salida.

locate myscript

Como cron solo actualiza la base de datos por la mañana, cualquier archivo agregado al sistema durante el día necesita que la base de datos se actualice manualmente. Esto se puede hacer usando el comando updatedb.

sudoupdatedb

Si intentamos “localizar” el script personalizado, podrá localizar el archivo.

3. which

Después de discutir los comandos para buscar archivos, cambiemos a un comando que puede ayudar a buscar la ruta absoluta de los ejecutables en el sistema: which.

Un ejecutable/script/binario puede estar presente en múltiples ubicaciones en el sistema. which busca en los directorios especificados en las variables de entorno $PATH y $MANPATH la existencia del ejecutable especificado.

Sin ningún interruptor, which muestra la primera ruta absoluta encontrada para un ejecutable.

El interruptor -a muestra todas las ocurrencias de las rutas absolutas encontradas para el ejecutable especificado.

Las rutas absolutas para múltiples ejecutables se pueden encontrar especificando los ejecutables uno tras otro.

4. whereis

whereis es otro comando y se utiliza para obtener tres piezas de información sobre un ejecutable:

  • ruta absoluta del binario
  • ruta absoluta donde existe el código fuente de ese binario en el sistema
  • ruta absoluta del manual que existe para ese binario

Para “bzgrep,” el binario existe en “/bin,” y el manual existe en “/usr/share/man/man1.” Su código fuente no existe en el sistema.

whereis puede ser instruido para buscar solo la ruta absoluta del binario usando el interruptor -b. La búsqueda se puede realizar solo en los directorios listados después del interruptor -B. Los nombres después de -f especifican todos los binarios para los cuales se necesita obtener la información.

De manera similar, la búsqueda se puede restringir solo al código fuente o solo a los manuales, usando los interruptores -s y -m. -S y -M seguidos de nombres de directorios especifican los directorios para buscar código fuente y manuales respectivamente.

El interruptor -l proporcionará una lista detallada de las rutas absolutas de todos los directorios utilizados por whereis para realizar la búsqueda.

Compare Which Listing

Conclusión

No faltan herramientas para que encuentres y localices archivos en la terminal. Espero que ahora tengas una buena idea sobre las cuatro herramientas de búsqueda útiles en los sistemas Linux. Si necesitas más detalles sobre su uso, puedes consultar sus páginas de manual para una documentación detallada.