TIP Linux - Eliminar archivos de forma recursiva por extensión
¡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!