Utilizar la búsqueda de archivos por contenido en Linux puede reducir significativamente el tiempo y el esfuerzo a la hora de buscar información específica en sistemas de archivos grandes y complejos.
Esta búsqueda puede ser especialmente útil cuando se desea encontrar archivos que contengan una determinada cadena o palabra clave, o cuando se desea encontrar todos los archivos que coincidan con un determinado patrón o criterio.
La búsqueda de ficheros por contenido puede utilizarse para diversas tareas, como encontrar
El objetivo general de la búsqueda de archivos por contenido es facilitar el trabajo con el sistema de archivos y encontrar la información que necesita en el sistema de archivos.
Empecemos con la utilidad ack. Fue creada en 2005 como alternativa a grep y rápidamente se hizo popular entre los desarrolladores.
Tiene varias ventajas sobre grep
, incluyendo:
grep
. Esto significa que puedes encontrar fácilmente archivos ocultos en tu sistema.Ejemplos de cómo usar ack:
- Buscar todos los archivos en la carpeta actual y sus subcarpetas que contengan la palabra
"test": ack "test"
- Lo mismo, pero excluyendo los archivos con extensión
.bak: ack "test" --ignore-file=match:/.bak$/
- Buscar todos los archivos de la carpeta actual que contengan la cadena "hola" y mostrar las 2 primeras líneas de cada archivo:
ack "hola" --heading --max-count=2
La segunda herramienta interesante es ripgrep. Es similar a ack en muchos aspectos, pero utiliza un algoritmo de búsqueda más rápido, lo que la hace especialmente útil para proyectos grandes.
He aquí algunos ejemplos:
"test": rg "test"
.bak: rg "test" --glob "!*.bak"
rg "hola" --heading --max-columns=2
Al final vale la pena mencionar fzf. No es sólo un buscador de cadenas como ack y ripgrep. Fzf se utiliza como una utilidad para encontrar archivos, carpetas y elementos en una lista. Por lo demás, funciona de forma similar a ack/ripgrep, pero con la capacidad añadida de filtrar en vivo los resultados. He aquí algunos ejemplos:
- Buscar archivos que empiecen por la letra F en su ordenador:
locate F | fzf -m
- Salir de la carpeta actual e ir al directorio que quiero:
cd **<TAB> | fzf
- Seleccione la revisión SVN y copie el número en el portapapeles:
svn log | fzf --reverse --ansi | awk '{print $1}' | pbcopy
Esperamos que estas herramientas le ayuden a encontrar los archivos y cadenas que necesita de forma rápida y eficaz. Cualquiera que elija, todas ofrecen búsquedas avanzadas que pueden acelerar su trabajo considerablemente.