bestimmte alte dateien löschen mit cronjob

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

bestimmte alte dateien löschen mit cronjob

Beitrag von OldGod78 » 28.02.2017 16:15:31

hallo , ich will dass regelmäßig in einem ordner alle dateien außer bestimmte dateien und ordner gelöscht wird was alt ist , wie mache ich das genau ?

Code: Alles auswählen

find /home/USER/files/ -type f -name '*.zip' -mtime +30 -delete
das nutze ich derzeit und änder immer .zip , wie mache ich das einfacher ?

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: bestimmte alte dateien löschen mit cronjob

Beitrag von breakthewall » 28.02.2017 17:08:06

Ganz einfach über eine Negierung der Suchparameter.

Code: Alles auswählen

find "/home/user/files/"* ! -name "*.zip" -mtime +29 -delete
Zunächst sollten Pfade stets in Doublequotes gesetzt werden. Das Ausrufezeichen negiert die Suche, wodurch nach allem gesucht wird ausser nach "*.zip". Wenn Ordner enthalten sein sollen, darf kein Dateityp gewählt werden. Und wenn nach exakt 30 Tagen gelöscht werden soll, dann muss da 29 stehen, weil bei 0 angefangen wird zu zählen für die ersten 24 Stunden.

OldGod78
Beiträge: 190
Registriert: 20.04.2016 20:59:51
Kontaktdaten:

Re: bestimmte alte dateien löschen mit cronjob

Beitrag von OldGod78 » 28.02.2017 17:33:24

okay und was heißt der * nach dem pfad ?

breakthewall
Beiträge: 507
Registriert: 30.12.2016 23:48:51

Re: bestimmte alte dateien löschen mit cronjob

Beitrag von breakthewall » 28.02.2017 18:04:22

Das Sternsymbol ist eine Wildcard und daher ein spezielles Zeichen. Angehängt an einen Pfad wie hier in Verwendung, würde das Suchmuster auf alles passen in diesem Pfad. Somit wäre der Ordner in dem gesucht wird für die Suche selbst ausgeschlossen, und kann daher auch nicht gelöscht werden was sonst eintreten würde. Man kann das auch ohne Wildcard lösen, indem man nach dem Pfad -mindepth 1 angibt, was find dazu veranlasst mindestens ab der ersten Rekursionstiefe mit der Suche zu beginnen. Das wäre an sich der saubere Weg.

Antworten