Cómo borrar recursivamente un tipo de archivo en Linux en un directorio y todos sus subdirectorios
Seguro que en alguna ocasión habéis comprobado que tenéis un tipo de archivo inútil en varias carpetas, que ocupa poco espacio pero sencillamente no lo queréis en vuestro equipo. Por ejemplo, en macOS se crean unos archivos .DS_Store que guardan información sobre el icono de una carpeta, su tamaño y posición, y en Windows existen los desktop.ini que son equivalentes. ¿Qué hacemos si tenemos un directorio lleno de subdirectorios y queremos eliminar estos u otros tipos de archivos? Lo que tenemos que hacer es borrar recursivamente todos y cada uno de ellos.
Esto es algo que podemos hacer con todo tipo de archivos. Por ejemplo, si tenemos un disco duro lleno de música, tenemos un reproductor que nos ha bajado las carátulas y no queremos tenerlas guardadas, podemos usar el mismo comando que detallaremos a continuación para eliminarlas. Eso sí, teniendo en cuenta que vamos a borrar recursivamente archivos de directorios y sus subdirectorios con el terminal y que estos se perderán para siempre, no está de más tener cuidado y/o hacer una prueba antes de eliminar todo lo que queramos eliminar.
Borrar recursivamente archivos de un tipo desde el terminal
Los comandos para el ejemplo de los archivos .DS_Store de macOS serían los siguientes:
cd ruta/a/directorio find . -name '.DS_Store' -type f -delete
De los comandos anteriores, el primero nos situará en la carpeta en donde queramos empezar, es decir, la que contiene todos los archivos .DS_Store que queramos eliminar. El segundo es el que borrará todos los archivos .DS_Store de la primera carpeta y sus subcarpetas o directorios. Si lo que queremos es eliminar las fotos de las carpetas de música anteriormente mencionadas, entre las comillas tenemos que poner el tipo de extensión, como podría ser ‘*.jpg’.
Para ser 100% sincero, esto es algo que haré el día que deje de usar Cantata como reproductor de música por defecto. Cantata crea y oculta unos archivos de información con el mismo nombre que las canciones que delante tienen un punto y una barra baja (por ejemplo, ._Canción). Cuando lo necesite, el comando que tendré que usar será find . -name ‘._*’ -type f -delete.
¿Te ha servido esta pequeña guía para borrar recursivamente archivos desde el terminal?