Wie im Thema: Ich möchte Dateien in einem Verzeichnis entfernen, die in einem bestimmten Datumsbereich geändert wurden. Wie kann ich das machen ?
quelle
Wie im Thema: Ich möchte Dateien in einem Verzeichnis entfernen, die in einem bestimmten Datumsbereich geändert wurden. Wie kann ich das machen ?
Der Befehl GNU find
ist der richtige Weg. Um beispielsweise alle Dateien im aktuellen Verzeichnis zwischen dem 1. und 5. August zu löschen, können Sie den folgenden Befehl verwenden
find . -maxdepth 1 -type f -newermt 2011-08-01 ! -newermt 2011-08-06 -delete
Es ist besser, den Befehl ohne die -delete
Aktion auszuführen , um zuerst die Liste der interessierten Dateien anzuzeigen (ein guter Ersatz könnte sein -ls
, dass eine ls-ähnliche Liste erstellt wird).
Durch Entfernen der -maxdepth 1
Spezifikation werden auch alle Unterverzeichnisse durchlaufen.
Sie können beispielsweise auch Stunden angeben
find . -maxdepth 1 -type f -newermt '2011-08-01 10:01:59' \
! -newermt '2011-08-06 23:01:00' -delete
Seien Sie gewarnt, keine einfachen Anführungszeichen zu entfernen, die Leerzeichen zwischen Datum und Uhrzeit schützen.
Das Zeichen !
ist eine Negation, es sollte gelesen werden: neuer als dieses Datum, aber nicht neuer als dieses andere Datum.
!
ist ein nicht. In diesem Beispiel: Nicht neuer als der 06.08.2011.-type f
.-type f
, das vergesse ich. Das-delete
ist eine GNU-Erweiterung, denke ich.