Dies ist recht einfach (obwohl zu beachten ist, dass dies eine Änderungszeit von mehr als 3 Tagen ist, da eine Erstellungszeit nur auf bestimmten Dateisystemen mit speziellen Tools verfügbar ist):
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-delete
Entfernen Sie das, #
bevor -delete
Sie sicher sind, dass es die Dateien findet, die Sie entfernen möchten.
Um es von cron ausführen zu lassen, würde ich wahrscheinlich nur ein ausführbares Skript erstellen (einen Shebang #!bin/sh
in die oberste Zeile der Datei einfügen und mit ausführbar machen chmod a+x
) und es dann in ein geeignetes cron
Verzeichnis wie /etc/cron.daily
oder stellen /etc/cron.weekly
. Vorausgesetzt natürlich, dass Sie keinen genaueren Zeitplan benötigen und diese Verzeichnisse in Ihrer Distribution vorhanden sind.
Aktualisieren
Wie unten erwähnt, ist die -delete
Option für find
nicht sehr portabel. Ein POSIX-kompatibler Ansatz wäre:
find /a/b/c/1 /a/b/c/2 -type f -mtime +3 #-exec rm {} +
Entfernen #
Sie erneut die, wenn Sie sicher sind, dass Sie die richtigen Dateien haben.
Update2
Um aus Stéphane Chazelas Kommentar unten zu zitieren :
Beachten Sie, dass -exec rm {} +
es Sicherheitslücken in Bezug auf die Racebedingung gibt, die -delete
(sofern verfügbar) nicht vorliegen. Verwenden Sie es also nicht für Verzeichnisse, die von anderen beschrieben werden können. Einige Funde haben auch eine -execdir
, die diese Sicherheitsanfälligkeiten abschwächt.
/a/b/c/
, damit nicht für jede Option das angegeben werden muss?