¿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?


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 -- {} \;

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.