Wie lösche ich Dateien unter Linux, die älter als 1 Jahr sind? [Duplikat]

9

Mögliches Duplizieren:
Wie lösche ich Dateien, die unter Linux ein bestimmtes Datum überschreiten?

Wie lösche ich alle Dateien im aktuellen Verzeichnis und in den Unterverzeichnissen, die älter als ein Jahr sind?

Gemeinschaft
quelle
1
Tun Sie man find. Boom.
1
Hinweis für Schließer: Diese andere Frage ist tatsächlich verwirrend anders, ihre Antworten sind nicht ganz einfach umzusetzen.
Gilles 'SO - hör auf böse zu sein'

Antworten:

15
find /the/dir/to/start/in -type f -mtime +365 -ls -exec rm -f -- {} \;
bot403
quelle
2
find /path/to/files -type f -mtime +365 -deletewäre einfacher.
Chris S
-delete ist nicht in meinem Aix-Fund enthalten, daher bin ich nicht daran gewöhnt, es zu verwenden. Ich bin froh, dass es in anderen Find-Binärdateien implementiert ist.
Bot403
find … -exec rm -f {} +wird ein wenig schneller sein (und es ist tragbar, außer für alte Systeme).
Gilles 'SO - hör auf böse zu sein'
1
Es ist auch eine gute Idee, diese zu verwenden, --wenn der erste Dateiname mit a beginnt -(obwohl Sie garantieren können, dass dies nicht passiert, wenn das übergebene Verzeichnis findnicht mit a beginnt -).
Gilles 'SO - hör auf böse zu sein'
Dies ist äußerst gefährlich, da Sie nicht sehen, was Sie löschen möchten, und warum in aller Welt Sie das Löschen mit -f erzwingen? Einige Dateien sind aus einem bestimmten Grund geschützt. Es ist viel sicherer, die Ergebnisse der Suche in einer Datei zu speichern, sie dann zu untersuchen und rm für den Inhalt der Datei auszuführen.
Petr
2

Wenn Sie viele Dateien entfernen, ist dies normalerweise viel schneller als "-exec" oder das Weiterleiten an "xargs":

find . -type f -mtime +365 | perl -lne unlink
Pontus
quelle