Meine Anwendung erstellt Verzeichnisse, wenn der Benutzer bestimmte Aktionen ausführt. Diese Verzeichnisse werden genau eine Stunde lang auf meinem Computer gespeichert und dann gelöscht.
Jetzt möchte ich den Teil der Anwendung, der sich mit der Löschlogik befasst, in einen Cron-Job verschieben, der jede Minute ausgeführt wird.
Nehmen wir an, dass sich die zu löschenden Verzeichnisse in befinden /tmp/files/
. Das Skript sollte alle Verzeichnisse in diesem Pfad überprüfen undalles löschen, was vor einer Stunde erstellt wurde.
Jede Hilfe wäre willkommen.
Dank im Voraus!
**GELÖST**
So funktioniert es:
find ./* -mmin +60 -type d -exec rm -rdf {} \;
Antwort1
Sie sollten es nicht verwenden, find ./*
da dies dazu führt, dass die Shell das Platzhalterzeichen vor dem Aufruf erweitert, find
was fehlschlägt, wenn zu viele Dateien vorhanden sind.
"./*"
Stattdessen müssen Sie Folgendes an den Find-Befehl übergeben :
find . -type d -path "./*" -mmin +60 -exec rm -rf {} \;