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.














10 Junio 2009, a las 22:54
Thanks for the useful info. It’s so interesting
01 Diciembre 2009, a las 14:37
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.
05 Diciembre 2009, a las 0:30
@Diego: te recomiendo que uses el “Bacula” o el “Backup Manager”, para realizar las tareas mencionadas.
Un saludo,
Alejandro Arco