En el siguiente artículo vamos a ver distintas formas de como buscar archivos y como reportar la información de los mismos. Utilizaremos distintas herramientas y diferentes formas de representación de la data. Los dos principales comandos que vamos a usar para realizar búsquedas en Linux son locate y find, existen más comandos para buscar archivos, pero para iniciarse con estas dos herramientas podrás realizar cualquier tipo de búsqueda.
Los otros comando que veremos en esta sección se emplean para extraer el output de la búsqueda y poder trabajar con él. Podemos desde ejecutar búsquedas más específicas mediante otros comandos que actúan como filtros o usar este mismo output para ejecutar comandos directamente.
La primera que vamos a ver para buscar archivos en linux es locate. Esta herramienta nos permite realizar búsquedas de archivos usando distintos parámetros. Posteriormente, podremos filtrar sus resultados empleando otras herramientas como xargs, wc, etc.
La sintaxis es muy simple, el comando seguido del archivo que vamos a buscar:
locate [archivo]
locate home
locate users
Podemos buscar por extensiones:
locate [.extensión]
locate .jpg
locate .txt
Vamos a ver como listar por Categorías los Scripts de un programa, en este caso, como ejemplo, usaremos Nmap. Para ello vamos a usar la herramienta locate para buscar por extensiones, ya que todos los scripts de Nmap contienen la extensión .nse.
Ahora, concatenando un xargs, vamos a ejecutar un grep y le especificamos el argumento «categories», de esta manera xargs nos listará las categorias correspondientes a cada script encontrado con locate.
locate .nse | xargs grep "categories"
grep "categories"
: Exporta las categorías de los archivos listados.Vemos como a la derecha nos reporta entre corchetes las categorías a las que corresponde cada script de Nmap.
Ahora vamos a quitar todo el ruido de fondo y únicamente vamos a filtrar los tipos de categorías que existen. Para ello vamos a usar otra vez el comando grep para crear una expresión regular -oP que nos permita capturar la data «.*?» que existe entre el doble comillado.
locate .nse | xargs grep "categories" | grep -oP '".*?"'
Vemos como ya nos reporta únicamente las categorías, pero algunas se muestran repetidas, para evitar esto, podemos utilizar la herramienta sort seguida de la opción -u:
locate .nse | xargs grep "categories" | grep -oP '".*?"' | sort -u
Vemos como ya nos muestra las categorías de una forma más limpia y sin repeticiones.