Dateien, die älter als xx Tage sind, finden

Hallo Leute

Ich habe ein Verzeichnis, in dem eine Anwendung in unregelmässigen Abständen bestimmte Dateien schreibt. Die Dateinamen sind dabei eher zufällig gewählt. Normalerweise braucht man die Dateien später nicht mehr, im Fehlerfall kann man aber aufgrund dieser Dateien den Fehlerfall rekonstruieren und das Problem lösen.

Worum es mir nun geht: ich möchte, dass in dem Verzeichnis nur die Dateien drinnen bleiben, die max. 30 Tage alt sind. Also dachte ich mir, einfach einen cron-Job erstellen, mit find alle Dateien suchen, die älter als 30 Tage sind und per -exec löschen.

Denkste - find scheint keinen Parameter zu haben, der „älter als xxx Tage“ lautet. Man kann lediglich Dateien, die zu einer bestimmten Stunde angelegt wurden, suchen. Oder Dateien, die älter als eine Referenzdatei sind.

Das kann doch irgendwie nicht sein. Hat tatsächlich sonst niemand so ein Problem? Der find-Befehl ist so mächtig und gerade so eine Funktion ist nicht drinnen? Oder übersehe ich da was?

Natürlich kann ich in einem Skript mit touch eine Datei mit den gewünschten Attributen anlegen und dann mit find auf Basis dieser Datei suchen, aber das kann es doch wohl nicht sein.

Frage daher an die Wissenden: übersehe ich einfach nur einen Parameter bei find? Oder gibt es ein anderes Programm, dass meine gewünschte Aktion durchführt (lösche Dateien, die älter als xxx Tage sind)? Wie löst ihr solche Probleme?

lg
Erwin

Hallo,

Denkste - find scheint keinen Parameter zu haben, der „älter
als xxx Tage“ lautet.

vielleicht verstehe ich dich falsch, aber was spricht gegen

find . -mtime +30


Philipp

hallo philipp

vielleicht verstehe ich dich falsch, aber was spricht gegen

find . -mtime +30

ähäm - peinlich, peinlich - ich scheine da etwas überlesen zu haben. du hast natürlich recht - durch ein voranstellen des plus-zeichens wird es zu einem grösser-gleich. steht zwar im man-file, aber nicht unbedingt so, dass man es gleich findet.

apropos man-page: ich weiss, es steht irgendwie schon drinnen, aber dass man den strichpunkt nach dem -exec unbedingt mit einem \ escapen muss, ist meiner meinung nach nicht so offensichtlich. habe da auch lange gesucht…

aber auf jeden fall man vielen dank dafür, dass du mir die augen geöffnet hast.

lg
erwin