¿Cómo eliminar archivos en linux mayores de 1 año? [duplicar]

9

Posible duplicado:
¿Cómo elimino archivos superiores a una fecha determinada en Linux?

¿Cómo eliminar todos los archivos en el directorio actual y sus subdirectorios de más de un año?

Comunidad
fuente
1
Hacer man find. Auge.
1
Nota para los taponadores: esa otra pregunta es realmente confusamente diferente, sus respuestas no son completamente fáciles de transponer.
Gilles 'SO- deja de ser malvado'

Respuestas:

15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;
bot403
fuente
2
find /path/to/files -type f -mtime +365 -deleteSería más fácil.
Chris S
-Eliminar no está en mi aix find, así que no estoy acostumbrado a usarlo. Sin embargo, me alegro de que esté implementado en otros binarios de búsqueda.
bot403
find … -exec rm -f {} +será un poco más rápido (y es portátil excepto para sistemas antiguos).
Gilles 'SO- deja de ser malvado'
1
Además, es una buena idea usarlo --en caso de que el primer nombre de archivo comience con un -(aunque puede garantizar que no sucederá si el directorio pasado findno comienza con un -).
Gilles 'SO- deja de ser malvado'
Esto es extremadamente peligroso ya que no ves lo que estás a punto de eliminar y ¿por qué estás obligando a eliminar con -f? Algunos archivos están protegidos por alguna razón. Es mucho más seguro almacenar los resultados de find en un archivo, luego examinarlos y ejecutar rm en el contenido del archivo.
Petr
2

Si está eliminando muchos archivos, esto suele ser mucho más rápido que "-exec" o canalizar a "xargs":

find . -type f -mtime +365 | perl -lne unlink
Ponto
fuente