it-swarm.com.de

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

Woher weiß man die Größe eines Verzeichnisses? Einschließlich Unterverzeichnisse und Dateien.

189
Juanjo Conti
du -s directory_name

Oder um eine vom Menschen lesbare Ausgabe zu erhalten:

du -sh directory_name

Das -s Option bedeutet, dass nicht die Größe für jedes Unterverzeichnis, sondern nur die Gesamtgröße aufgeführt wird.

245
sepp2k

GNU du nimmt ein -b Möglichkeit.

Weitere Hilfe finden Sie auf der Seite man und auf der Seite info :

-b, --bytes ist äquivalent zu --apparent-size --block-size=1

7
user2573436

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

cd /    
Sudo du -sh ./*
7
NFlourish
du -csh

-c produziert Gesamtsumme

1
Kalpesh Soni

Versuchen

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

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

1
rollinjack

Sie können "file-size.sh" aus der awk Velour-Bibliothek verwenden:

ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
1
Steven Penny

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 beansprucht, unabhängig davon, wie viel ein einzelnes Verzeichnis zusammenfasst.

Verwendungszweck: Sudo ncdu / (Sie benötigen Sudo nicht für Ordner, für die Sie Leseberechtigung haben).

Das Scannen der Festplattennutzungsstatistiken im gesamten Dateisystem dauert eine Weile. Es verfügt über eine schöne grafische Darstellung der Befehlszeile und eine Tastaturnavigation mit den Pfeiltasten, z. B. tiefer oder höher im gescannten Pfad. Sie können Elemente auch durch Drücken von löschen D.

0
Etescartz

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
Boris Yakubchik

Ich habe es mit dem folgenden Befehl versucht, da bereits die beste Antwort gegeben 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
0

In der ursprünglichen Frage wurde nach der Größe gefragt, es wurde jedoch nicht angegeben, ob es sich um die Größe auf der Festplatte oder die tatsächliche Größe der Daten handelt.

Ich habe festgestellt, dass die Berechnung von 'du' zwischen Servern mit derselben Partitionsgröße und demselben Dateisystem variieren kann. Wenn sich die Eigenschaften des Dateisystems unterscheiden, ist dies sinnvoll, aber ansonsten kann ich nicht verstehen, warum. Die 'ls | awk "-Antwort, die Steven Penny gab, ergab eine konsistentere Antwort, gab mir aber immer noch inkonsistente Ergebnisse mit sehr großen Dateilisten.

Die Verwendung von 'find' ergab konsistente Ergebnisse für mehr als 300.000 Dateien, selbst wenn ein Server mit XFS und ein anderer mit EXT4 verglichen wurde. Wenn Sie also die Gesamtzahl der Datenbytes in allen Dateien wissen möchten, ist dies ein guter Weg, um sie zu erhalten:

find /whatever/path -type f -printf "%s\n"|awk '{q+=$1} END {print q}'
0
Angelo Babudro

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 zur Anzeige von Verzeichnisinformationen, nicht zum Inhalt des Verzeichnisses. -h dient zur Anzeige der Größe in einem von Huma lesbaren Format.

0
fromnaboo