it-swarm-eu.dev

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

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, das nur die Größe der einzelnen Dateien in einem Verzeichnis anzeigt, noch
  • df -h, das nur den freien und verwendeten Speicherplatz auf meinen Festplatten anzeigt.
774
David Barry

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

du -hs /path/to/directory
  • -h soll die Zahlen "für Menschen lesbar" machen, z. Erhalte 140M anstelle von 143260 (Größe in KByte)
  • -s dient zur Zusammenfassung (ansonsten erhalten Sie nicht nur die Größe des Ordners, sondern auch für alles in den Ordner separat)

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

du -h | sort -h

Das -h -Flag bei sort berücksichtigt Größenwerte, die für Menschen lesbar sind.


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

du -h --max-depth=1 /path/to/directory
1243
Marcel Stimberg

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 z. riesige temporäre Dateien aus dem Inneren des Tools
  • extrem schnell

Stellen Sie es sich als Baobab für die Kommandozeile vor:

apt-get install ncdu
164
geekQ

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

du -hsc *
51
Brad

Genießen!

du foldername

Weitere Informationen zu diesem Befehl hier

16
myusuf3

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

Von Mannbaum :

-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
αғsнιη

Im Folgenden wird beschrieben, wie ich die Gesamtgröße, den Ordner und die Dateigröße drucke:

$ 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
9
vivekyad4v

Die Antworten haben deutlich gemacht, dass du das Tool zum Ermitteln der Gesamtgröße eines Verzeichnisses ist. Es sind jedoch einige Faktoren zu berücksichtigen:

  • Gelegentlich kann die Ausgabe von du 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 Schalter -h auf du teilt die 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
pdp

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

Der -s ist Größe und der -h ist vom Menschen lesbar.

Verwenden Sie -l, um in der ls Liste anzuzeigen, wie unten dargestellt:

ls -shl
1
Shiv Singh

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 Manpage (verfügbar online ) lesen, bevor Sie den Befehl verwenden.

0

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
Steven Penny

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 zeigen nur eine Summe für jedes Argument an
- h, - menschenlesbare Druckgrößen im menschenlesbaren Format (z. B. 1K 234M 2G)

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

0
kmario23