Hay algunas formas de encontrar y ubicar 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. encontrar
El enfoque directo para buscar archivos dentro de cualquier directorio especificado es usar el find
dominio. Si el directorio para realizar la búsqueda no se especifica explícitamente, 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.
La búsqueda también se puede realizar en función de las marcas de tiempo, los permisos de archivo, el tamaño del archivo, el tipo de archivo, el propietario del archivo, etc. Se pueden usar expresiones regulares para controlar los parámetros de búsqueda. Instrucciones más detalladas sobre el find
El comando se puede encontrar aquí.
2. localizar
Este comando es otra forma de buscar archivos por nombre. El comando anterior busca en el directorio especificado y luego proporciona los resultados al usuario. Esta herramienta realiza la búsqueda en una base de datos llamada “mlocate.db”, que se encuentra en “/var/lib/mlocate/mlocate.db”. Esta base de datos se actualiza todas las mañanas mediante la utilidad cron.
El comando se ejecuta más rápido que find
porque la búsqueda se realiza en una base de datos existente que ya ha curado la lista de todos los archivos y directorios del sistema.
locate
seguido del nombre del archivo muestra el nombre de la ruta absoluta donde existe ese archivo.
Supongamos que se ha creado un script en el directorio de inicio.
Si intentamos ubicar el script recién creado y copiado, no obtendremos ningún resultado.
Como cron solo actualiza la base de datos por la mañana, los archivos se agregan al sistema durante el día, luego la base de datos debe actualizarse manualmente. Esto se puede hacer usando el updatedb
dominio.
Si intentamos «ubicar» el script personalizado, podrá ubicar el archivo.
3. cual
Después de discutir los comandos para buscar archivos, pasemos a un comando que puede ayudar a buscar la ruta absoluta de los archivos ejecutables en el sistema: which
.
Un ejecutable/secuencia de comandos/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 interruptores, which
muestra la primera ruta absoluta encontrada para un ejecutable.
-a
switch muestra todas las apariciones de rutas absolutas encontradas para el ejecutable especificado.
Las rutas absolutas para varios ejecutables se pueden encontrar especificando los ejecutables uno tras otro.
4. donde esta
whereis
es otro comando y se usa 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
se le puede indicar que busque solo la ruta absoluta del binario usando -b
cambiar. La búsqueda se puede realizar sólo en los directorios enumerados después -B
cambiar. nombres después -f
especificar todos los binarios para los que 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, utilizando -s
y -m
interruptores -S
y –M
seguido de los nombres de los directorios especifica los directorios para buscar el código fuente y los manuales, respectivamente.
-l
switch proporcionará una lista detallada de las rutas absolutas de todos los directorios utilizados por whereis
para realizar la búsqueda.
Conclusión
No faltan herramientas para encontrar y ubicar archivos en la terminal. Espero que ahora tenga una buena idea sobre las cuatro útiles herramientas de búsqueda en los sistemas Linux. Si necesita más detalles sobre su uso, puede consultar sus páginas de manual para obtener una documentación detallada.