So löschen Sie Verzeichnisse, die älter als eine Stunde sind (Cron-Job)

So löschen Sie Verzeichnisse, die älter als eine Stunde sind (Cron-Job)

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, findwas 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 {} \;

verwandte Informationen