GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Auffinden von Dateien, die älter als x Tage sind, auf einem System mit abgespeckter Busybox

-mtime ist ein Standardprädikat von find (im Gegensatz zu -delete ), aber es sieht so aus, als hätten Sie eine abgespeckte Version von busybox , wobei die FEATURE_FIND_MTIME Funktion wurde zur Build-Zeit deaktiviert.

Wenn Sie busybox mit aktivierter Funktion neu erstellen können, sollten Sie in der Lage sein:

find . -mtime +6 -type f -exec rm -f {} +

Oder wenn FEATURE_FIND_DELETE ist ebenfalls aktiviert:

find . -mtime +6 -type f -delete

Wenn nicht, könnten andere Optionen darin bestehen, find -newer zu verwenden (vorausgesetzt FEATURE_FIND_NEWER aktiviert ist) für eine Datei, die auf eine eine Woche alte Änderungszeit eingestellt ist.

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -newer ../ref -exec rm -f {} +

Oder wenn -newer ist nicht verfügbar, aber sh ist [ unterstützt -nt :

touch -d "@$(($(date +%s) - 7 * 86400))" ../ref &&
  find . ! -type f -exec sh -c '
    for f do
      [ "$f" -nt ../ref ] || printf "%s\0" "$f"
    done' sh {} + |
    xargs -0 rm -f

Ab man find :

-Zeit n

Auf die Datei wurde zuletzt vor n*24 Stunden zugegriffen. Wenn find herausfindet, vor wie vielen 24-Stunden-Perioden zuletzt auf die Datei zugegriffen wurde, wird jeder Bruchteil ignoriert. Um also -atime +1 zu finden, muss auf eine Datei vor mindestens zwei Tagen zugegriffen worden sein.

-ctime n

Der Status der Datei wurde zuletzt vor n*24 Stunden geändert. Sehen Sie sich die Kommentare zu -atime an, um zu verstehen, wie sich das Runden auf die Interpretation der Änderungszeiten des Dateistatus auswirkt.

Abhängig von den Anwendungsfällen der Dateien, die Sie löschen möchten, sind dies Ihre einzigen anderen Optionen für find . Warum ist mtime Nicht verfügbar? Welches Dateisystem verwendest du? Haben Sie andere Optionen geprüft?


Linux
  1. Wie lösche ich alle Dateien, die älter als X Tage in Linux sind?

  2. Menschenlesbare Dateien unter Unix finden

  3. Berechnen Sie den gesamten belegten Speicherplatz nach Dateien, die älter als 180 Tage sind, mit find

  4. So erstellen Sie Tar für Dateien, die älter als 7 Tage sind, mithilfe von Linux-Shell-Skripten

  5. Wie löschen Sie Dateien, die älter als ein bestimmtes Datum in Linux sind?

Finden Sie verlorene Dateien mit Scalpel

So löschen Sie Dateien, die älter als die angegebenen Tage in Linux sind

Verzeichnisse mit allen Dateien finden, die älter als X sind?

Suchen und Löschen von Dateien mit einem bestimmten Datum

Löschen von Dateien, die älter als 30 Tage sind, basierend auf dem Dateinamen als Datum

Linux:Verwenden von find zum Auffinden von Dateien, die älter als <Datum> sind