Cómo borrar recursivamente un tipo de archivo en Linux en un directorio y todos sus subdirectorios

Borrar recursivamente un tipo de archivo

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?

Comando grep
Artículo relacionado:
Comando grep: potente herramienta para encontrar texto desde el Terminal

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.

  1.   Sebastián Castro dijo

    Gracias, pero hay un error en tu código. Te falto usar la expresión regular ‘*’, es decir ‘*.DS_STORE’. Te recomiendo que lo corrijas. Pues para quienes tienen menos conocimiento de bash, no les va a funcionar el codigo que diste. Saludos!