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.