Löschen Sie ältere Solaris-Dateien als ein bestimmtes Datum und eine bestimmte Uhrzeit

Das Löschen von Dateien aufgrund ihres Alters ist manchmal nützlich. Dieses technische Rezept beschreibt ein Verfahren zum Löschen gealterter Dateien mit dem UNIX-Befehl find.


Der Suchbefehl hat eine -Neues Ausdruck, der die gefundenen Dateien mit einer Referenzdatei vergleicht. Es gibt Dateien mit einer Änderungszeit zurück, die neuer als die Referenzdatei ist. Um ältere Dateien zu finden, müssen Sie dem Negation-Operator den Ausdruck -newer voranstellen !.

Wenn Sie nicht über eine Datei mit einem geeigneten Zeitstempel verfügen, können Sie eine Datei mit diesem technischen Rezept erstellen: Erstellen Sie eine UNIX-Datei mit einem beliebigen Zeitstempel.

Anhand der Referenzdatei / tmp / timeref können Sie alle älteren Dateien im aktuellen Arbeitsverzeichnis und darunter mit dem folgenden Befehl finden:

finden . ! -newer / tmp / timeref -exec ls -l {} \; | Mehr

Dieser Befehl ist sicher und enthält nur eine lange Liste der Zieldateien, wobei die Dateien Seite für Seite angezeigt werden. Mit diesem Befehl können Sie vor dem irreversiblen Löschen sicherstellen, dass die Befehlssyntax korrekt ist.

Wenn Sie mit der Suchsyntax vertraut sind, können Sie in den Befehl wechseln, um das Löschen zu bewirken:

finden . ! -newer / tmp / timeref -exec rm {} \;

Seien Sie vorsichtig mit diesem Befehl. Es gibt keine einfache Möglichkeit, Dateien unter UNIX wiederherzustellen. Die Verwendung der langen Dateilistenversion dieses Befehls bietet zunächst viel Sicherheit, da Sie genau sehen können, was passiert. Wechseln in ein Verzeichnis und Ausführen des Suchbefehls darin mithilfe von. Der Pfad bietet zusätzlichen Schutz vor einer falschen Eingabe des Pfads.