Wie kann ich die Größe eines Verzeichnisses berechnen?


181

Wie erkenne ich die Größe eines Verzeichnisses? Einschließlich Unterverzeichnisse und Dateien.

Antworten:


230
du -s directory_name

Oder um eine vom Menschen lesbare Ausgabe zu erhalten:

du -sh directory_name

Die -sOption führt nicht die Größe für jedes Unterverzeichnis auf, sondern nur die Gesamtgröße.


7
Eigentlich duist Standardeinheit ist 512-Byte - Blöcke gemäß POSIX und Kilobyte auf Linux (es sei denn , die Umgebungsvariable POSIXLY_CORRECTgesetzt ist) , oder mit du -k.
Gilles

3
@ Gilles: Guter Fang. Ich habe das Bit "Anzahl der Bytes" aus meiner Antwort entfernt.
12.

1
arbeitete wie vorgeschrieben
Skidadon

1
Wenn das Verzeichnis sehr groß ist und viele Unterverzeichnisse hat, braucht es viel Zeit ... fast 1 Minute. Ist das normal? Gibt es eine Möglichkeit, die Größe schneller zu ermitteln?
Yeahman

2
Ich musste die Größe meines Ordners "bag" berechnen, du -sh baghat perfekt funktioniert!
António Almeida

7

Während die Verwendung eines separaten Pakets wie ncdu gut funktioniert, kann der gleiche Vergleich vieler Ordner bis zu einem gewissen Grad durchgeführt werden, indem nur eine Liste von Ordnern zum Vergrößern angegeben wird. Zum Beispiel, um Verzeichnisse der obersten Ebene auf Ihrem System zu vergleichen ...

cd /    
sudo du -sh ./*

2
du -sh /*
Einfacher


1
du -csh

-c ergibt Gesamtsumme


1
Das -cergibt keinen Sinn, zusammen mit zu verwenden -s, oder? -sZeigt nur die Größe des angegebenen Verzeichnisses an, dh die Gesamtgröße des Verzeichnisses.
Andreas Storvik Strauman

1

Versuchen

du -hax --max-depth=1 / | grep '[0-9]G' | sort -nr

Dies hilft dabei, große Verzeichnisse zu finden, die dann mit durchsucht werden können du -sh ./*


0

Sie können auch ls -ldh verwenden:

ls -ldh /etc drwxr-xr-x 145 root root 12K 2012-06-02 11:44 /etc

-l ist für lange Auflistung; -d dient zum Anzeigen von dir-Informationen, nicht des Inhalts des Verzeichnisses. -h dient zum Anzeigen der Größe in einem von huma lesbaren Format.


4
Dies ist nicht korrekt, die fragende Person sucht eindeutig nach dem Footprint eines Verzeichnisses und dessen Inhalt auf der Festplatte. Die Antwort von @ sepp2k ist richtig.
Blong

1
Der Befehl ls -ldh zeigt nur die Größe der Inode-Struktur eines Verzeichnisses an. Die Metrik spiegelt die Größe der Indextabelle der Dateinamen wider, nicht jedoch die tatsächliche Größe des Dateiinhalts im Verzeichnis.
Linbianxiaocao

0

Ich installiere immer das "ncdu" -Paket und sehe die gesamte Ausgabe aller Verzeichnisse mit grafischer Darstellung. Dies liegt daran, dass ich normalerweise wissen muss, was den meisten Speicherplatz auf meinen Computern belegt, unabhängig davon, wie viel ein einzelnes Verzeichnis zusammenfasst.

Verwendung: sudo ncdu /(Sie benötigen keine sudoOrdner, für die Sie Leseberechtigung haben).

Das Durchsuchen der Datenträgernutzungsstatistik für das gesamte Dateisystem dauert eine Weile. Es verfügt über eine schöne grafische Befehlszeilendarstellung und eine Tastaturnavigation mit den Pfeiltasten, z. B. tiefer oder höher in den gescannten Pfad. Sie können Elemente auch löschen, indem Sie drücken D.



0

du -hd1

listet in einem für Menschen lesbaren Format die Größen aller Verzeichnisse auf, z

656K    ./rubberband
2.2M    ./lame
652K    ./pkg-config

0

Ich habe es mit folgendem Befehl versucht, da bereits die beste Antwort geliefert wurde

sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

Ausgabe

 sudo find . -maxdepth 1 -exec du -shk {} \;| awk 'NR >1'| awk 'BEGIN{sum=1}{sum=sum+$1}END{print sum}'

679445
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.