Jun32009

Borrar ficheros por fecha en linux

En algunas ocasiones deseamos borrar ficheros antiguos, para ello basta con conocer la potencia del comando find (ver ayuda con man find), y concatenar la operación que deseamos realizar con -exec, en este caso borrar ficheros por fecha.

El comando find nos permite ejecutar cualquier otro comando, reemplazando {} por cada linea que devuelva el comando find.

En el ejemplo que muestro a continuación voy a borrar archivos por fecha, con una antiguedad mayor a 180 días desde la fecha actual (el número de días variará según las necesidades de cada uno).

# Borrar ficheros por fecha con más de 180 días de antiguedad
find /home/vmail -name "*mail*" -atime +180 -type f -print -exec rm {} \;

Además, en el ejemplo anterior se eliminan todos los ficheros (no directorios) que esten contenidos dentro de la carpeta «/home/vmail» (incluidas subcarpetas) que contengan la cadena «mail» en el nombre del fichero y que tengan una antiguedad superior a 180 días.

Si tenéis alguna duda no dudéis en dejarme un comentario.

Share

4 Comentarios

+ Añadir Comentario
  • Thanks for the useful info. It’s so interesting

  • Hola Alejandro, estaba buscando alguna manera de poder realizar una especie de backup de mis archivos antiguos, para ello se me ocurrio dos manera:

    La mas comoda: que en un zip o tar me comprima los archivos del mes de septiembre.

    La no tan comoda: es crear una carpeta que copie los archivos del mes de septiembre y alli comprimir dicha carpeta.

    Te pido si sabrias como seria un comando para ello, ya que soy novato en linux y recien me estoy metiendo en el tema. Gracias y perdona por la molestia.

  • @Diego: te recomiendo que uses el «Bacula» o el «Backup Manager», para realizar las tareas mencionadas.

    Un saludo,
    Alejandro Arco

  • Buen aporte este parámetro del comando find, gracias por el, con esto he podido mejorar una modificación del script UbuCleaner que he hecho, Ldeb, para que tenga en cuenta la antigüedad al limpiar caches y determinados archivos antiguos de respaldo y similares.

    Te dejo el enlace por si quieres hecharle un ojo o usarlo, es libre bajo GPL: http://sourceforge.net/projects/ldeb/files/Ldeb.sh/download

Si tienes alguna consulta, escríbela ...