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

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

du würde nicht zusammenfassen, wenn Sie ihm eine Liste von Dateien übergeben.

Leiten Sie stattdessen die Ausgabe an cut weiter und lassen Sie awk Fass es zusammen. Sie können also sagen:

find . -mtime +180 -exec du -ks {} \; | cut -f1 | awk '{total=total+$1}END{print total/1024}'

Beachten Sie, dass die Option -h um das Ergebnis in menschenlesbarem Format anzuzeigen, wurde durch -k ersetzt was einer Blockgröße von 1K entspricht. Das Ergebnis wird in MB dargestellt (siehe total/1024 oben).


@PeterT hat Recht. Fast alle diese Antworten rufen einen Befehl (du) für jede Datei auf, was sehr ressourcenintensiv, langsam und unnötig ist. Der einfachste und schnellste Weg ist dieser:

find . -type f -mtime +356 -printf '%s\n' | awk '{total=total+$1}END{print total/1024}'

Warum nicht das?

find /path/to/search/in -type f -mtime +180 -print0 | du -hc --files0-from - | tail -n 1

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

  2. Suchen und entfernen Sie Dateien mit Leerzeichen mit dem Befehl find unter Linux

  3. Bash-Skript zum Löschen von Dateien, die älter als x Tage sind, mit Unterverzeichnissen

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

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

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

Dateien oder Ordner finden und löschen, die älter als x Tage sind

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

Finden Sie alle Dateien, die älter als eine Minute sind

Ordnungsgemäßes Löschen von Dateien, die älter als 30 Tage sind

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