Eliminar archivos de más de un año en Linux

18

Para cuando todavía hay muchos archivos en mi sistema y ya no los necesito, entonces, ¿cómo eliminar todos los archivos que tienen al menos un año?

Maythux
fuente

Respuestas:

34

Puedes hacerlo con este comando

find /path/to/files* -mtime +365 -exec rm {} \;

Algunos explican

/path/to/files* es la ruta a los archivos.

-mtimese usa para especificar el número de días que tiene el archivo. +365 encontrará archivos de más de 365 días, que es un año

-exec le permite pasar un comando como rm.


Editar Gracias a @Oli note -> puedes hacerlo de la siguiente manera:

find /path/to/files* -mtime +365 -delete
Maythux
fuente
77
Siempre debe citar el {}in -exec(para que se lea -exec rm "{}" \;). Esto asegura que los espacios se manejen correctamente ... Y podría usar la -deletefunción en lugar de -exec.
Oli
1
@Oli Huh ??? (Lo que has dicho no puede ser correcto, teniendo en cuenta que las vueltas de la cáscara "{}"en {}antes de pasarla a find, en primer lugar, y luego findla sustituye por su cotización. {}Se sugiere en el caso {y }ellos mismos pueden a veces ser tratados especialmente por el shell - que nada tiene que hacer con espacios en blanco. Y a menudo {}no es necesario citarlo. No puedo pensar en ninguna situación, al menos al invocar el hallazgo de un shell de estilo Bourne, cuando {}, sin nada dentro, apareciendo por sí mismo como argumento, tiene que ser citado. ¿Puedes?)
Eliah Kagan
1
@EliahKagan Sí, resulta que las findmanijas se escapan por sí mismas, pero no es un mal hábito estar haciendo scripts. No duele
Oli
2
@Oli Pero no ayuda, incluso en principio. Si findno se maneja el escape, "{}"todavía tendría el mismo efecto que: {}simplemente ninguno de los dos funcionaría, en lugar de que ambos funcionen. Eso {}y "{}"comportarse igual no es, y no puede ser, debido a alguna característica especial de encontrar. Confundir lo que se expande por el shell con lo que se expande por algún otro programa es un mal hábito. Todos cometemos ese error ocasionalmente, pero sigue siendo un error, no una mejor práctica. (Todavía podría citarse {}para ayudar a los humanos a ver que no es un patrón para la expansión de llaves, pero eso no está relacionado con la división de palabras).
Eliah Kagan