Skip to content

Delete Files older than 30 days on Linux

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

Ich mag Einzeiler... ;-)

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Uli am :

find /path/to/files* -type f -mtime +30 | xargs rm
Ohne -type haust alles in die Tonne wenn das Verzeichnis sich geändert hat, dann findet der find nämlich auch "." ...
testen würd ich das mit -exec ls -la {} \; oder | xargs ls -la statt mit rm ;-)

Marc am :

Hallo Marco,

zwei Anmerkungen dazu...

- Das funktioniert auch mit Dateinamen, die Leerzeichen enthalten, wenn man den Platzhalter für den Dateinamen in Anführungszeichen setzt: -exec rm "{}" \;

- Bei einer großen Zahl von zu löschenden Dateien gehts mit xargs deutlich billiger/schneller: find /pfad -mtime +30 | xargs rm

scnr,
Marc

Marco Gabriel am :

danke für deine ergänzungen. xargs allerdings funktioniert bei mir mit vielen dateien eher nicht. ich erinnere mich an einige fälle, bei denen ich mehrere zehntausend dateien damit löschen wollte und es mit xargs nicht schaffte, mit find direkt jedoch schon.

Kommentar schreiben

Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Um einen Kommentar hinterlassen zu können, erhalten Sie nach dem Kommentieren eine E-Mail mit Aktivierungslink an ihre angegebene Adresse.
BBCode-Formatierung erlaubt
Sie können [geshi lang=LANG][/lang] Tags verwenden um Quellcode abhängig von der gewählten Programmiersprache einzubinden
Formular-Optionen
tweetbackcheck cronjob