Cómo usar find y grep para encontrar ficheros que contengan un determinado texto

Para buscar ficheros que contienen determinado texto, se pueden combinar en unix los comandos find y grep.

Por ejemplo, para encontrar el texto “textoaencontrar” en cualquier fichero a partir del directorio en el que estamos, se puede hacer de esta forma:

$ find . -type f -exec grep -H textoaencontrar {} \;

El comando “find . -type f” localiza cualquier fichero de tipo “fichero” (no directorios, links, etc) y con la opción “-exec”, pasa los resultados al comando “grep” para que los explore. La opción -H del comando “grep” añade el nombre del fichero a los resultados de las búsquedas.

Cómo usar find y rm para buscar y borrar ficheros

Muchas veces, es necesario buscar y borrar ficheros o subdirectorios en el disco.

Un ejemplo típico ocurre cuando queremos borrar todos los subdirectorios “CVS” que hay dentro del directorio de un proyecto.

Para eso, es muy útil combinar “find” y “rm” de esta forma:

$ find . -name ‘CVS’ -exec rm -fr {} \;

El comando “find” localiza los directorios o ficheros que cumplen el patrón que se necesita, y con la opción “-exec”, pasa los resultados al comando “rm” para que los borre.