Come eliminare i file in Linux più vecchi di 1 anno? [duplicare]


9

Possibile duplicato:
come posso eliminare file superiori a una certa data su Linux

Come eliminare tutti i file nella directory corrente e le sue sottodirectory più vecchie di un anno?


1
Fare man find. Boom.

1
Nota per chi chiude: quell'altra domanda è in realtà confusa in modo diverso, le sue risposte non sono completamente semplici da trasporre.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;

2
find /path/to/files -type f -mtime +365 -deletesarebbe più facile.
Chris S,

-delete non è nel mio ritrovamento aix quindi non sono abituato ad usarlo. Sono contento che sia stato implementato in altri binari di ricerca.
bot403,

find … -exec rm -f {} +sarà un po 'più veloce (ed è portatile tranne che per i sistemi antichi).
Gilles 'SO- smetti di essere malvagio' il

1
Inoltre, è una buona idea usare --nel caso in cui il primo nome del file inizi con un -(anche se puoi garantire che non accadrà se la directory passata findnon inizia con un -).
Gilles 'SO- smetti di essere malvagio' il

Questo è estremamente pericoloso poiché non vedi cosa stai per eliminare e perché nel mondo stai forzando la cancellazione con -f? Alcuni file sono protetti per un motivo. È molto più sicuro archiviare i risultati di find in un file, quindi esaminarli ed eseguire rm sui contenuti del file.
Petr

2

Se stai rimuovendo molti file, questo è in genere molto più veloce di "-exec" o reindirizza a "xargs":

find . -type f -mtime +365 | perl -lne unlink
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.