Dateien älter als ein bestimmtes Datum automatisch löschen - Möglichkeiten?

EPMS

Registered User
Hallo Zusammen,
momentan lösche ich mit folgendem Befehle ältere Spam Nachrichten.
rm -f $(find /srv/email/*/*/.Spam/new/* -mtime +7 -type f);
Wenn jetzt zuviele Nachrichten im Ordner sind funktioniert das so aber nicht mehr. Gibt es eine Möglichkeit wie ich Dateien die älter als ein bestimmtes Datum sind noch löschen kann?

Danke im voraus.
 
Code:
find /srv/email/*/*/.Spam/new/* -mtime +7 -type f -exec rm {} \;

edit: nach 2x Nachbessern ist jetzt hoffentlich kein Tippfehler mehr enthalten :-)
 
Code:
find /srv/email/ -regex '.+/.Spam/new/.+' -mtime +7 -type f -exec rm {} \;
 
Last edited by a moderator:
Super. Danke schön. Damit funktioniert es. Magst du mir, wenn du Zeit hast, kurz erklären was der Befehlt genau macht?

Danke. :-)
 
was der Befehlt genau macht?

ich möchte Dir ja nicht zu nahe treten - aber Du führst einen von mir vorgeschlagenen Befehl, der noch dazu Files löscht einfach aus, ohne Dir VORHER genau angesehen zu haben, was er tut?

Ich kann Dich beruhigen: Ich habe den Befehl nach bestem Wissen und Gewissen formuliert - aber es soll ja auch Scherzbolde geben, die sich gern mal einen Spaß erlauben. Außerdem kann jedem mal ein Fehler passieren. Daher hätte es sich eventuell angeboten statt des "-exec rm {} \;" vorab mal mit einem "-exec echo {} \;" zu testen.


also, was tut dieses find nun:

Code:
man find

Code:
find /srv/email/ -regex '.+/.Spam/new/.+' -mtime +7 -type f -exec rm {} \;

wir suchen alle Dateien ausgehend von /srv/email auf welche die oben angeführte regular Expression zutrifft, die vom Typ "f = regular file" sind und deren modification Time länger als 7 Tage in der Vergangenheit liegt. Für die gefundenen Dateien führen wir dann jeweils ein "rm" aus. Zum Testen empfiehlt es sich das "rm" durch ein unsprektakuläres "echo" zu ersetzen (dann passiert vorerst mal nicht mehr als eine Ausgabe der gefundenen Dateien).

die Regular Expression sucht in diesem rudimentären Beispiel lediglich nach:
.+ = irgend ein beliebiger String
/.Spam/new/ = der gewünschte Teilstring
.+ = danach wieder irgendwas beliebiges

Aber nochmals der Hinweis: Immer zuerst verstehen was man da tut, bevor man solche Dinge ungeprüft aus dem Web übernimmt!
 
Back
Top