El comando find es uno de los comandos más utilizados en Unix y Linux. El comando find busca en el sistema de archivos, a partir de un punto de partida, de forma recursiva nombres de archivo que se seleccionan de acuerdo a criterios específicos. Las aplicaciones más comunes de búsqueda son:
- Generar una lista de archivos para copia de seguridad.
- Búsqueda a través del sistema de ficheros después de una "perdida" de archivos.
- Examinar el contenido de un archivo para una determinada palabra o patrón.
Ejemplos:
Lista los directorios en el sistema de ficheros donde estemos situados.
$ find . -type d -print
Busca todos los archivos con la extensión (.o) desde el directorio en el que estemos y borra los ficheros que se ajusten al patrón.
$ find . -name "*.o" -exec rm -i {} \;
Busca y elimina todas los archivos "core" y "*. BAK".
$ find . (-name core -o -name ’*.BAK’) -exec rm -f {} \;
Buscar todos los archivos que en los últimos 7 días han sido modificados.
$ find . ! -mtime +7 -print
Buscar todos los archivos que en los últimos 7 días, no han cambiado.
$ find . -mtime +7 -print
Buscar en todos los archivos que contengan la cadena CREATE, devuelve el fichero.
$ find . -type f -exec grep -l "CREATE" {} \;
Buscar en todos los archivos que contengan la cadena CREATE, devuelve el fichero y la cadena completa donde se encuentra en patrón.
$ find . -type f -exec grep "CREATE" /dev/null {} \;
Buscar todos los archivos que tengan un tamaño y muestra en la salida el mismo.
$ find . -size +1G -exec ls -sdh {} +