Qué es y cómo funciona el comando find en Linux
La sintáxis básica del comando “find” es:
find directorio criterio acción
- Directorio.- define la ubicación desde la que se quiere empezar la búsqueda. Por ejemplo: /home/
- Criterio.- se usa para seleccionar los archivos. Se pueden usar comodines. Por ejemplo: *.tmp
- Acción.- se especifica aquí qué debe hacer el comando con los archivos que cumplan con el criterio indicado.
Para eliminar múltiples archivos del tipo que queramos:
find . -name "archivo" -exec rm -rf {} \\;
o
find . -type f -name "archivo" -exec rm -rf {} \\;
La diferencia entre ambos comandos indicados arriba es que el primero localiza y borra archivos y directorios, y el segundo sólo archivos.
- -name “archivo”.- se indica aquí qué estamos buscando. Se pueden usar comodines.
- -exec rm -rf.- Ejecuta el comando indicado a continuación, es decir, tras el “-exec” insertamos el comando que se ejecutará con cada archivo encontrado. En este caso es “rm” con el modificador “-rf”, que significa borrar de forma recursiva sin preguntar.
- -type f: Permite filtrar para incluir sólo f(icheros) o d(irectorios).
Ejemplos:
Mucho mucho ojo al usar estos comandos como root:
Buscar y borrar todos los archivos con extensión *.bak en el directorio en el que estás:
find . -type f -name "*.bak" -exec rm -f {} \\;
Buscar todos los nombres de archivo que contengan la palabra “core” desde la raíz y eliminarlos:
find / -name core -exec rm -f {} \\;
Buscar y eliminar los archivos *.bak desde el directorio actual pero pidiendo confirmación por cada archivo encontrado:
find . -type f -name "*.bak" -exec rm -i {} \\;
Buscar y eliminar archivos ocultos en el directorio que estamos:
find -type f -name ".*" -exec rm -f {} \;
Fuentes: