Distribuciones Linux
0

Linux: Buscando ficheros y contenido

Una de las cosas que hacen grande al comando find en Linux es lo ágil y maleable que es para poder realizar búsquedas y poder ejecutar secuencias dentro de las mismas de manera automática.

Por ello mismo y sobre todo cuando se quiere realizar una búsqueda recursiva de varios ficheros y mediante un grep, filtrar el contenido deseado.

El comando

De manera básica, el comando sería el siguiente:

find <path> -type f -name '<fileName>' -exec grep -H "<text>" {} \;

Analizando el comando, vemos lo siguiente:

  • - type f — Le estamos indicando que solo queremos que nos muestre los ficheros
  • - name — Especificamos el nombre o el patrón que queremos dentro del nombre.
  • - exec — Se utiliza para ejecutar un comando al obtener un resultado.

Prueba Práctica

Un ejemplo de una secuencia que podríamos llegar a usar en casi cualquier sistema Linux, podría ser la siguiente:

find /var/log/ -type f -name '*.log' -exec grep -H -i "error" {} \;

Con esto, lo que estamos buscando son los fichero .log que tengan la sentencia error (tanto mayúsculas como minúsculas) y obtendríamos un resultado como este:

root@MyHPCraft:~# find /var/log/ -type f -name '*.log' -exec grep -H -i "error" {} \; | more
/var/log/auth.log:Jun 12 00:09:00 MyHPCraft sshd[253709]: error: kex_exchange_identification: Connection closed by remote host
/var/log/auth.log:Jun 12 00:09:01 MyHPCraft sshd[253710]: error: kex_exchange_identification: banner line contains invalid characters

Como se puede ver, lo que nos muestra primero es el nombre del fichero y luego nos muestra la linea donde aparece la palabra clave que hemos buscado.

Otra cosa que podemos hacer para mandar los resultados, es exportar el resultado a un fichero para poder analizarlo con tranquilidad.

Esta es una forma fantástica de buscar el contenido de ciertos ficheros de una manera muy ágil y sobre todo, flexible.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies