Thread find - erst zip, dann delete
(8 answers)
Opened by Astralkeks at 2013-10-09 17:33
Zum einen könntest Du find anweisen, jede Datei einzeln dem ZIP-Archiv hinzuzufügen und dann zu löschen:
Code (shell): (dl
)
find -type f -mmin +5 -exec zip /path/name.zip '{}' ';' -delete Zum anderen könntest Du die Liste der Dateien zwischenspeichern, dann alle archivieren und anschließend alle löschen: Code (shell): (dl
)
1 2 3 4 5 FILES="$(mktemp files.XXXXXXXXXX)" find -type f -mmin +5 >"$FILES" zip -@ /path/name.zip <"$FILES" xargs -d'\n' -- rm -f -- <"$FILES" rm "$FILES" Ergänzung: Falls die Gefahr besteht, dass irgendein Schlaumeier Dateien mit einem Zeilenumbruch im Namen anlegt, müsste man im zweiten Fall weitere Vorkehrungen treffen, damit zip und xargs auf den richtigen Dateien operieren. Aber dieses Problem hat Deine bestehende Lösung ja auch schon. Edit: Verbesserte Sicherheit der Argumente für rm Editiert von murphy: Verbesserte Sicherheit der Argumente für rm Last edited: 2013-10-09 18:36:29 +0200 (CEST) When C++ is your hammer, every problem looks like your thumb.
|