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

alle Zahlen von du summieren

Im AWK:

{ sum += $1 }
END { print sum }

Also

du -b /tmp/* | awk '{ sum += $1 } END { print sum }'

Beachten Sie, dass das Ergebnis nicht korrekt ist, wenn die Verzeichnisse unter /tmp selbst Unterverzeichnisse haben, weil du erzeugt laufende Summen für Verzeichnisse und ihre untergeordneten Elemente.

du -s berechnet die Summe für Sie korrekt (auf alle Unterverzeichnisse und Dateien in /tmp , einschließlich versteckter):

du -sb /tmp

und du -c berechnet die Summe der aufgelisteten Verzeichnisse und Dateien auch korrekt:

du -cb /tmp/*

Mit du -c können Sie auch eine Gesamtsumme ausgewählter Dateien erzeugen . Dies funktioniert auch bei einem Argument von du kein Verzeichnis ist, was bei du -s nicht der Fall ist :

$ du -sb file1 file2
17  file1
18  file2

$ du -cb file1 file2
17  file1
18  file2
35  total

Übrigens, für die interaktive Verwendung empfehle ich das Hinzufügen von -h Option anstelle von -b oder irgendein anderer Multiplikator der Blockgröße. Dadurch wird die Größe im menschenlesbaren Einheitenformat gedruckt.

$ du -ch file1 file2
4.0K    file1
4.0K    file2
8.0K    total

Es ist einfach, Sie können verwenden:

 du -b /tmp/* | awk 'BEGIN{i=0} {i=i+$1} END{print i}'

Wenn Sie keinen Platzhalter verwenden, wenn Sie einen Verzeichnisnamen wie /tmp verwenden , dann müssen Sie den letzten Eintrag vermeiden, da du -b /tmp ausgegeben wird ist wie:

size1 file1
size2 file2
size_total .

Jetzt sollten Sie also diesen letzten Eintrag vermeiden, also verwenden Sie:

du -b /tmp | awk 'BEGIN{i=0} {if( $2 != "." ){i=i+$1}} END{print i}'

Sie können aber auch -s verwenden Option, es wird die Zusammenfassung für Sie berechnen, dann brauchen Sie die Werte nicht hinzuzufügen, drucken Sie einfach den letzten, d.h.:

du -s directory

Linux
  1. Wie kann ich schnell alle Zahlen in einer Datei summieren?

  2. Entfernen Sie alle Sonderzeichen und Groß-/Kleinschreibung aus der Zeichenfolge in Bash

  3. Wie verschiebt man alle Dateien vom aktuellen Verzeichnis in das obere Verzeichnis?

  4. Zypper:Wie zeige ich alle Pakete aus einem bestimmten Repository an?

  5. Wie wähle ich den gesamten Text aus einer Datei mit Nano aus?

Alle installierten Linux-Kernel von der Befehlszeile aus auflisten oder überprüfen

So finden Sie alle installierten Schriftarten über die Befehlszeile in Linux

Generieren von Zufallszahlen aus dem Linux-Terminal

So sichern Sie alle MySQL-Datenbanken über die Befehlszeile

So entfernen Sie alle Leerzeichen aus einer Textdatei

Löschen aller Partitionen über die Befehlszeile