Para Unix tenemos el comando FIND, que nos permite personalizar la búsqueda y con el resultado de esa búsqueda, engancharla para hacer algo con ella.
find /directorio -name "*.txt" -mtime +30 -type f -print -exec rm {} \;
Con -name le estamos diciendo que queremos solo buscar archivos que se llamen, por ejemplo:
*.txt: Archivos con extensión txt.
*carta*: Archivo que contienen carta en su nombre de fichero.
En este ejemplo, buscamos los ficheros que son mas antiguos de 30 dias (-mtime +30). En lugar de 30 se puede poner los días que queramos.
Igual por internet ven en lugar de -mtime y -atime. La diferencia reside en:
atime: Archivos que han sido accedidos hace x días.
mtime: Archivos que han sido modificados hace x días.
Luego vemos el parámetro -type que le indicamos que tipo estamos buscando, como por ejemplo:
d - directorio
f - archivo
l - enlace
Con el parámetro -print le decimos que nos muestre el resultado de la búsqueda.
Con el resultado de la búsqueda podemos redirigirla para hacer algo con ella, en este caso -exec nos permite ejecutar un borrado de: " {} ". Esas llaves son cada linea que devuelve el comando find.
Espero que os sirva de ayuda.