Wie bestimme ich die Gesamtgröße eines Verzeichnisses (Ordners) über die Befehlszeile?


Zur akzeptierten Antwort gehen


Gibt es einen einfachen Befehl zum Anzeigen der Gesamtgröße (Datenträgerverwendung) aller Dateien in einem Verzeichnis (Ordner)?

Ich habe diese ausprobiert und sie machen nicht das, was ich will:

  • ls -l , die nur die Größe der einzelnen Dateien in einem Verzeichnis anzeigt, noch
  • df -h , die nur den freien und belegten Speicherplatz auf meinen Festplatten anzeigt.

810





2010-08-05




Anzahl der Antworten: 12


Der Befehl du "fasst die Festplattennutzung jeder DATEI rekursiv für Verzeichnisse zusammen", z.

 du -hs /path/to/directory
 
  • -h ist auf die Zahlen „human readable“, zB bekommen zu bekommen 140M statt 143260 (Größe in KBytes)
  • -s ist für die Zusammenfassung (ansonsten erhalten Sie nicht nur die Größe des Ordners, sondern auch für alles im Ordner separat)

Während der Verwendung können -h Sie die vom Menschen lesbaren Werte mit sortieren

 du -h | sort -h
 

Das -h Flag on sort berücksichtigt die Größenwerte für "Human Readable".


Wenn Sie vermeiden möchten, alle Dateien und Verzeichnisse rekursiv aufzulisten, können Sie den --max-depth Parameter angeben, um die Anzahl der angezeigten Elemente zu begrenzen. Am häufigsten, --max-depth=1

 du -h --max-depth=1 /path/to/directory
 

1303


2010-08-05

Kürzlich habe ich ein großartiges, auf ncurses basierendes interaktives Tool gefunden, das Ihnen schnell einen Überblick über die Verzeichnisgrößen gibt. Suchte jahrelang nach solchen Werkzeugen.

  • Schneller Drilldown durch die Dateihierarchie
  • Sie können zB große temporäre Dateien aus dem Tool löschen
  • extrem schnell

Betrachten Sie es als Baobab für die Befehlszeile:

 apt-get install ncdu
 

168


2012-10-11

Dadurch wird die Größe rekursiv ermittelt und neben jedem Ordnernamen zusammen mit der Gesamtgröße unten im menschlichen Format angezeigt

 du -hsc *
 

55


2014-12-19

Genießen!

 du foldername
 

Weitere Informationen zu diesem Befehl finden Sie hier


17


2010-08-05

tree ist ein weiterer nützlicher Befehl für diesen Job:

Installieren Sie es einfach über sudo apt-get install tree und geben Sie Folgendes ein:

 tree --du -h /path/to/directory
...
...

33.7M used in 0 directories, 25 files
 

Vom Menschenbaum :

 -h    Print  the size of each file but in a more human readable way, e.g. appending a size letter for kilo†
      bytes (K), megabytes (M), gigabytes (G), terabytes (T), petabytes (P) and exabytes (E).

--du  For each directory report its size as the accumulation of sizes of all its files and  sub-directories
      (and their files, and so on). The total amount of used space is also given in the final report (like
      the 'du -c' command.)
 

10


2015-01-27

Nachstehend ist aufgeführt, was ich zum Drucken von Gesamt-, Ordner- und Dateigröße verwende:

 $ du -sch /home/vivek/* | sort -rh
 

Einzelheiten

  ------------------------------------------------------------
   -c, --total
          produce a grand total
   -h, --human-readable
          print sizes in human readable format (e.g., 1K 234M 2G)
   -s, --summarize
          display only a total for each argument
 -------------------------------------------------------------
   -h, --human-numeric-sort
          compare human readable numbers (e.g., 2K 1G)
   -r, --reverse
          reverse the result of comparisons
 

Ausgabe

  70M    total
 69M    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/lib
992K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/results
292K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/target
 52K    /home/vivek/Downloads/gatling-charts-highcharts-bundle-2.2.2/user-files
 

10


2016-10-06

Die Antworten haben deutlich gemacht, dass dies du das Werkzeug ist, um die Gesamtgröße eines Verzeichnisses zu ermitteln. Es sind jedoch einige Faktoren zu berücksichtigen:

  • Gelegentlich kann die du Ausgabe irreführend sein, da sie den vom Dateisystem zugewiesenen Speicherplatz angibt, der sich von der Summe der Größen der einzelnen Dateien unterscheiden kann. Normalerweise weist das Dateisystem einer Datei 4096 Byte zu, selbst wenn Sie nur ein Zeichen darin gespeichert haben!

  • Leistungsunterschiede aufgrund der Leistung von 2 und der Leistung von 10 Einheiten. Der -h Schalter zum du Teilen der Anzahl der Bytes durch 2 ^ 10 (1024), 2 ^ 20 (1048576) usw., um eine vom Menschen lesbare Ausgabe zu erhalten. Viele Menschen sind möglicherweise eher daran gewöhnt, Potenzen von 10 zu sehen (z. B. 1K = 1000, 1M = 1000000) und sind vom Ergebnis überrascht.

Gehen Sie wie folgt vor, um die Gesamtsumme der Größen aller Dateien in einem Verzeichnis in Byte zu ermitteln:

 find <dir> -ls | awk '{sum += $7} END {print sum}'
 

Beispiel:

 $ du -s -B 1
255729664

$ find .  -ls | awk '{sum += $7} END {print sum}'
249008169
 

4


2016-02-04

Verwenden Sie die folgenden Angaben nur für die Verzeichnisgröße in einem lesbaren Format:

 du -hs directoryname
 

Dies ist wahrscheinlich nicht im richtigen Abschnitt, aber über die Befehlszeile können Sie versuchen:

 ls -sh filename
 

Das -s ist Größe, und das -h ist vom Menschen lesbar.

Verwenden Sie -l auf zeigen ls Liste, wie unten:

 ls -shl
 

2


2016-05-12

du /foldername ist der Standardbefehl zum Ermitteln der Größe eines Ordners. Es wird empfohlen, die Optionen in der Manpage zu finden:

 man du
 

Sie sollten die Online- Handbuchseite lesen, bevor Sie den Befehl verwenden.


0


2011-12-05

Hier ist ein POSIX-Skript, mit dem Folgendes funktioniert:

  • Eine Datei
  • Dateien
  • Ein Verzeichnis
  • Verzeichnisse
 #!/bin/sh
ls -ARgo "[email protected]" | awk '{q += $3} END {print q}'
 

Quelle


0


2017-03-27

Wenn Ihr gewünschtes Verzeichnis viele Unterverzeichnisse enthält, verwenden Sie Folgendes:

 $ cd ~/your/target/directory
$ du -csh 
 

-c, --total ergibt eine Gesamtsumme
-s, --summarize zeigt nur eine Gesamtsumme für jedes Argument an.
-h, --menschlich lesbare Druckgrößen in menschlich lesbarem Format (z. B. 1K 234M 2G).

Dies würde dann eine Gesamtsumme des Speicherbedarfs aller Dateien / Ordner im aktuellen Verzeichnis ergeben.


0


2019-03-21

Das Beste, was ich denke, ist das Folgende:

 du -h directory_name | tail -n1
 

Dadurch wird nur die Größe des Verzeichnisses angezeigt, an dem Sie interessiert sind, und es werden keine Verzeichnisse und Dateien in diesem Verzeichnis gedruckt.

Ich sollte hinzufügen, dass, wenn die Größe des Ordners groß ist, Sie längere Zeit brauchen. Sie müssen geduldig sein, damit dieser Befehl ausgeführt werden kann. Wie bei jedem anderen Unix-Befehl können Sie die Gesamtzeit für diesen Vorgang ermitteln, indem Sie time vor diesem Befehl Folgendes ausführen :

 time du -h directory_name | tail -n1
 

-2


2014-12-19