TIP Linux - Eliminar archivos de forma recursiva por extensión

TIP Linux - Eliminar archivos de forma recursiva por extensión
tutorial linux eliminar ficheros recursivamente geeky theory

¡Hola! Me he encontrado con un problema haciendo unas cosas en el trabajo. Tenía que ejecutar un programa en Python que buscara de forma recursiva todos los archivos en varios directorios y subdirectorios. Este programa esperaba encontrar archivos con extensión .csv, pero había un problema, que tenía otros archivos en distintas carpetas que no me servían para nada y necesitaba borrar. Como había unos cuantos miles de estos archivos, no iba a borrar uno a uno, así que los he borrado con un simple comando que busca de forma recursiva en todos los directorios y borra todos los archivos con una determinada extensión. Por ejemplo, .txt. Otro caso de uso podría ser el de tener muchas imágenes en formato JPG y querer pasarlas a PNG. Tras finalizar la conversión, queremos borrar cualquier archivo con extensión .jpg. ¿Cómo lo hacemos? Pues con este mismo procedimiento que váis a leer ahora.

PASO 1

Primero ir con cd  al directorio:

cd directorio

PASO 2

Ahora vamos a listar los archivos con el comando find . Esto es simplemente por precaución para ver qué vamos a borrar, antes de hacerlo. Con el '.' indicamos que tiene que buscar a partir del directorio en el que nos encontramos y, con el '*.txt' le decimos que busque todos los archivos con extensión .txt.

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

PASO 3

En el paso anterior hemos listado los archivos, pero ahora toca borrarlos, por lo que añadiremos un -delete  al final del comando:

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

Ahora ya hemos eliminado con un sólo comando todos los archivos que no queríamos. Nos hemos ahorrado tener que ir navegando por todas las carpetas para eliminar uno a uno.

Espero que os haya servido o que os sea de ayuda en un futuro.

¡Un saludo!