Skript, das über cronjob ausgeführt wird, um alle Dateien in mehreren Verzeichnissen zu löschen

610
Glen

Ich hoffe, dass Sie mir Ihre Expertise leihen können.

Ich benutze Shared Hosting auf Hostgator und muss herausfinden, wie Sie alle .gz-Dateien in mehreren Verzeichnissen stündlich löschen. Ich denke, ich habe den Befehl cronjob, um dies für ein Verzeichnis zu tun:

/usr/bin/find /path/to/directory/ -type f -name '*.gz' -exec rm {} \; 

Ist das korrekt?

Wenn ja, wie würde ich dieselbe Aktion ausführen, jedoch für mehrere (dh viele Dutzend) Verzeichnisse? Ich vermute, ich kann ein Skript anstelle einer Reihe einzelner Cronjobs ausführen, aber ich bin neu in diesem Bereich. Wie würde ein solches Skript aussehen? Und wie würde ich das Skript über einen Cronjob ausführen?

Vielen Dank im Voraus für jegliche Hilfe!

3
Wenn Ihre Version von "find" dies unterstützt, möchten Sie "-delete" anstelle von "-exec rm {} \;" oder zumindest "+" anstelle von "\;" verwenden. Dennis Williamson vor 13 Jahren 0
Eine Alternative ist `/ usr / bin / find / path / to / directory / -type f -name '* .gz' -print0 | xargs -0 rm` verhindert, dass rm immer wieder für jede einzelne Datei ausgeführt wird. hlovdal vor 13 Jahren 0

1 Antwort auf die Frage

1
Ignacio Vazquez-Abrams

Übergeben Sie mehrere Pfade an find.

find /dir1 /dir2 ... 
Vielen Dank! Und das wird für viele Verzeichnisse funktionieren? Glen vor 13 Jahren 0
Es sollte, obwohl ich das genaue Maximum nicht kenne. Ignacio Vazquez-Abrams vor 13 Jahren 0