Categorías: Tutoriales

Cómo borrar archivos de un sólo tipo y de forma recursiva

Nos encontramos ante la siguiente situación: tenemos en una ruta determinada, formada por varias carpetas, un tipo de fichero que queremos borrar conservando el resto.

La solución si hablamos de dos carpetas y tres ficheros es hacerlo a mano, si tenéis más carpeta o más ficheros, debéis usar la solución que abajo os propongo y que hace uso de las bondades de la terminal.

Si no estáis seguros de lo que vais a hacer lo mejor es que pida confirmación entre borrado y borrado.

Veamos un ejemplo: queremos borrar todos los ficheros PDF que existen en nuestro directorio actual y en todos sus hijos:

find . -type f -name "*.pdf" -exec rm -i {} \;

Si estáis muy seguros, podéis quitar la confirmación. Otro ejemplko, esta vez borrando ficheros jpg de una ruta en concreto (y todos sus hijos):

find /home/usuario/imagenes -type f -name "*.jpg" -exec rm -f {} \;

Seguro que alguna vez tendréis que usar algo así. Si tenéis dudas, preguntad en los comentarios.

F. Javier Carazo Gil

Cofundador de CODECTION, empresa especializada en WordPress, autor de un libro sobre WordPress (el primero en español) y multitud de artículos (en medios físicos y virtuales) sobre el tema. Participa en la comunidad WordPress de forma activa siendo parte del equipo organizador de la WordPress Meetup de Córdoba, dando charlas en diferentes WordCamp y siendo autor y coautor de multitud de plugins libres y premium para WordPress de gran éxito.

Ver comentarios

      • Gracias por comentarlo, el plugin que usamos (que por cierto es genial) para colorear la sintaxis, falla cuando le metes caracteres no UTF-8. Ya está arreglado :)

  • es justo lo que estab buscando, pero la terminal me responde:

    find: falta un parámetro para «-exec»

  • Don Javier, consulta sobre el array_push, debo hacer un mantenedor de usuarios con sus prefiles y por ende cada uno de ellos pueden entrar solo a las direcciones que se les asigno, con esta modalidad de array puedo entregar variables para un tipo de elementos: ejemplo
    $AdminGen = array();
    array-push(AdminGen,1,2,3,4,5,6,7,8,9,); el primer elemento es el perfil a uar y los elementos sifuientes serian las paginas a cargar, se puede hacer esta bien o que falta, gracias

Entradas recientes

DeepSeek

2 días hace

Contacto

2 semanas hace

Smart-tv mute

2 semanas hace

STEAM OS

3 semanas hace

2025

4 semanas hace

El podcast de Linux Hispano – #072 – El hardware libre debe consolidarse como el software libre

https://www.youtube.com/embed/z-xGk9c_eOw Guionista y locutor: Manuel Ignacio López Quintero.Fecha de publicación: 31 de diciembre de 2024.

1 mes hace