Risposte:
Puoi farlo con questo comando
find /path/to/files* -mtime +365 -exec rm {} \;
Alcuni spiegano
/path/to/files* è il percorso dei file.
-mtimeviene utilizzato per specificare il numero di giorni precedenti al file. +365 troverà file più vecchi di 365 giorni, ovvero un anno
-exec ti permette di passare un comando come rm.
Modifica Grazie alla nota @Oli -> puoi farlo:
find /path/to/files* -mtime +365 -delete
"{}"in {}prima di passarlo al find, in primo luogo, poi findsostituti per esso preventivi. {}È suggerito nel caso {e }si possono a volte essere trattati in maniera particolare dalla shell - che non ha nulla a fare con spazi vuoti. E spesso {}non c'è bisogno di essere citato. Non riesco a pensare a nessuna situazione, almeno quando invoco il ritrovamento da una shell in stile Bourne, quando {}, senza nulla all'interno, che appare da solo come argomento, sarebbe deve essere citato. Puoi?)
findmaniglie scappano da sole, ma non è una cattiva abitudine stare durante lo scripting. Non fa male.
findnon gestisse l'escaping, "{}"avrebbe comunque lo stesso effetto di - {}solo nessuno dei due avrebbe funzionato, invece di funzionare entrambi. Questo {}e "{}"comportarsi allo stesso modo non è - e non può essere - a causa di qualsiasi caratteristica speciale di find. Confondere ciò che viene espanso dalla shell con ciò che viene espanso da qualche altro programma è una cattiva abitudine. Tutti commettiamo questo errore di tanto in tanto, ma è comunque un errore, non una buona pratica. (Si potrebbe ancora citare {}per aiutare gli umani a vedere che non è un modello per l'espansione del tutore, ma non è correlato alla divisione delle parole.)
{}in-exec(così si legge-exec rm "{}" \;). Questo assicura che gli spazi siano gestiti correttamente ... E puoi semplicemente usare la-deletefunzione invece di-exec.