Cómo buscar y borrar archivos de forma recursiva en Linux

¡Hola inventores! Como administradores de sistemas o incluso como usuarios comunes de sistemas Gnu/Linux, les puede haber pasado que necesitáramos encontrar el mismo archivo repetido en múltiples directorios o carpetas, o tal vez borrar todos los archivos de un tipo específico, por lo que tendríamos que ir carpeta a carpeta borrando cada uno, pero ¡Eso se acabó! Hoy vamos a ver una manera de ahorrarnos todo este trabajo con un solo comando. ¡Vamos allá!

Por cierto, si quieres ver la versión en video de este micro Tip, te lo dejo en mi canal de youtube.

PASO 1 – Entrar en el directorio

Primero, debemos situarnos en el directorio en el que queremos buscar usando el comando cd:

cd directorio_objetivo

PASO 2 – Listar antes de borrar Por tipo

Acto seguido, podemos listar los archivos con el comando find, sí, con el comando find, sin usarl ls. Esto lo haremos para saber qué estaremos borrando antes de borrar, en caso de que sean muchos archvios; ya que lo hará de manera recursiva, es muy recomendable.

find . -name "*.png" -type f

El punto «.» indica que tiene que buscar a partir del directorio en el que nos encontramos en ese momento y, con el ‘*.png‘ le decimos que busque todos los archivos con extensión .png.

PASO 3 – Buscar y borrar

En el paso anterior hemos listado los archivos, pero ahora, para borrarlos, añadiremos el parámetro -delete  al final del comando:

find . -name "*.png" -type f -delete

Con esto, habremos eliminado con un sólo comando todos los archivos que deseabamos borrar sin tener que ir navegando por todas las carpetas para eliminar uno a uno.

Buscar y borrar por palabra clave

Otra cosa que puedo hacer es buscar una palabra clave del nombre del archivo que quisieramos encontar:

find . -name "*palabra_clave*" -type f -delete

Con esto, habremos eliminado con un sólo comando todos los archivos que contengan palabra_clave en su nombre de manera recursiva.

¿Cómo hacer que reconozca mayúsculas y minúsclas?

Agregando -iname en lugar de -name al comando, podemos hacer que tanto palabra_clave como PALABRA_CLAVE se incluyan en la busqueda, lo mismo para .png o .PNG:

find . -iname "*pAlAbrA_clAvE*" -type f -delete

Muy Bien , espero que les haya servido, ¡Y hasta un próximo micro tip!