Buscando archivos en GNU/ Linux

No conozco una sola persona, que al día de hoy, no tenga la necesidad de buscar archivos en su disco duro. Algunas herramientas gráficas permiten buscar archivos o carpetas, con tan solo unas cuantas opciones. En lo personal, nunca me he valido de esas herramientas, siento que entorpecen un poco la búsqueda. Es un efecto que produce estar demasiado tiempo con la consola. Sí, la consola que sólo funciona con instrucciones emanadas de los dedos del usuario.

Ahora bien, en las distribuciones como Fedora, Centos o mismo RHEL, hay más de una manera de buscar archivos, y es con el comando locate. Este comando tiene algunas ventajas, como ser más rápido que el otro comando estándar, find. Su problema es que tiene restricciones en cuanto a rutas y archivos qué puede buscar, y el tiempo que tarda en actualizar su base de datos (updatedb). Este último puede resolverse fácilmente, actualizando la BD de manera manual, tomándole unos cuantos segundos.

El archivo de configuración (/etc/updatedb.conf) sirve para restringir los directorios que se indexarán, entre otras cosas. En este post no abordaremos el comando locate, puesto que considero que sale del uso común y que fácilmente puede subsanarse con find, sin embargo, lo menciono por algún curioso que esté interesado en conocer más herramientas de búsqueda.

Buscar archivos con locate


Para buscar archivos solo basta con escribir el comando locate seguido de la cadena de texto que buscamos. Puede soportar regex.

$ locate logind.dfs

Buscar archivos con find


Creo que esta es la vía estándar de hacer las búsquedas, e incluso, puedo decir que la más robusta en cuando a búsqueda se refiere. Con find podemos buscar por nombre de archivo, por directorio, por permisos, tamaño, fechas de modificación o dueños (usuario y/o grupo). En fin, no pretendo dar una guía exhaustiva de cómo funciona find, sólo colocaré algunos ejemplos.


Buscar por usuario y grupo

Buscamos las coincidencias por el usuario lyonn
find /home -user lyonn -ls

Buscamos las coincidencias por el usuario lyonn o el usuario webuser
find /home -user lyonn -or user webuser -ls

Buscamos las coincidencias por el grupo admin
find /etc -group admin -ls

Buscamos por todos los usuarios que NO sean root
find /var -not -user root -ls

Buscando por permisos

Busca las coincidencias con permisos 755
find / -perm 755 -ls

Busca los directorios con permisos de escritura para el usuario, el grupo y otros.
find / -perm -222 -type d -ls

Buscar por sólo lectura
find /sololectura -perm +222 -type f

Buscando por tamaño

Busca coincidencias de archivos que midan 10M o más
find /opt/appserver/domain/logs -size +10M

Busca por las coincidencias de archivos que midan menos de 5G
find /opt/appserver/domain/logs -size -5G


La información que aquí presento es exigua con respecto todas las opciones que find nos brinda, sin embargo, puede servirte para comenzar a picarle piedra, como dice el argot técnico.





Comentarios

Entradas populares de este blog

Análisis de conexiones TIME_WAIT

Agregar un usuario a un grupo secundario

Desencriptar passwords AES y DES en WebLogic 10