2010-08-03 17:58:26 +0000 2010-08-03 17:58:26 +0000
142
142

Die Größen der aktuellen Ordner mit dem Terminal auflisten?

Ich möchte eine Liste der Ordner aus dem aktuellen oder einem von mir angegebenen Verzeichnis mit ihrer Größe.

Ich habe es mit du versucht, aber ich erhalte nur die Größe der von mir angegebenen Verzeichnisse (du . ./f1), und ls zeigt die Größe der Ordner nicht an.

Wie mache ich das ohne Skripting ?

Antworten (9)

223
223
223
2010-08-03 18:29:55 +0000

Wenn Sie alle Verzeichnisse im aktuellen Verzeichnis anzeigen möchten:

$ du -sh */
788K foo/
500K bar/
931K baz/

Um sie ausgehend von einem anderen Verzeichnis anzuzeigen:

$ du -sh /path/to/dir/*/
48K /path/to/dir/dir1/
4.0K /path/to/dir/dir2/
6.7M /path/to/dir/dir3/
20K /path/to/dir/dir4/
8.0K /path/to/dir/dir5/
44K /path/to/dir/dir6/

Wenn Sie sicherstellen möchten, dass Verzeichnisse, deren Namen mit einem Punkt beginnen, eingeschlossen sind, tun Sie zuerst shopt -s dotglob.

19
19
19
2013-03-02 05:23:56 +0000

Auf einem Mac wird die Option –max depth durch -d [depth] ersetzt. Um also eine von Menschen lesbare Auflistung Ihres Root-Laufwerks plus 2 Ebenen tief zu sehen, verwenden Sie folgendes:

du -hd 2 /*

Hinweis: Dieser Befehl legt die obersten beiden Verzeichnisebenen Ihres Root-Laufwerks frei. Dies schließt das Durchqueren einer Ebene in Ihre Volumes_ ein und listet die Zusammenfassungsgrößen jedes Verzeichnisses der obersten Ebene in jedem Ihrer angehängten Volumes auf. Je nachdem, was Sie angehängt haben, kann es einige Zeit dauern, bis dieser Befehl abgeschlossen ist.

14
14
14
2010-08-03 19:32:55 +0000

Ein weiterer Ansatz ist die Option –max-Tiefe.

du -h --max-depth=1 .

listet alle Verzeichnisse und Dateien unter dem aktuellen Ordner mit ihrer Größe auf.

Tiefe 2 würde eine weitere Ebene von Ordnern auflisten.

5
5
5
2010-08-03 18:09:10 +0000

Versuchen Sie:

$ du -s ./f1

oder

$ du -sh ./f1

für freundlichere lesbare Größen.

4
4
4
2018-03-02 22:17:45 +0000

Aufbauend auf der akzeptierten Antwort zeigt Ihnen dieser Befehl die Grössen der Ordner im Verzeichnis an, und listet sie auch nach Grösse auf, damit Sie sie leichter interpretieren können:

$ du -sh */ | sort -rn
2
2
2
2015-06-30 15:39:04 +0000

$ du --max-depth=1 /var/www/ | sort -n -r

2
2
2
2016-06-12 12:26:54 +0000

Erwähnenswert ist der Shell-Befehl NCurses Disk Usage .

Ncdu ist ein Festplattenauslastungsanalysator mit einer Ncurses-Schnittstelle. Es wurde entwickelt, um Speicherplatzfresser auf einem entfernten Server zu finden, auf dem keine vollständige grafische Konfiguration zur Verfügung steht, aber es ist auch auf normalen Desktop-Systemen ein nützliches Werkzeug. Ncdu soll schnell, einfach und leicht zu benutzen sein und sollte in jeder minimalen POSIX-ähnlichen Umgebung mit installiertem Ncurses laufen können.

1
1
1
2017-03-27 23:47:09 +0000

Hier ist ein POSIX-Skript, das mit folgendem funktioniert:

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

Quelle

1
1
1
2017-09-28 15:32:12 +0000

Auf Mac können Sie die GNU (Linux)-Implementierung von du mit Homebrew (brew install coreutils) installieren. Dann können Sie zum Beispiel

gdu folder -shL --exclude=.git

wobei

  • gdu der Name der GNU-Implementierung von du ist (standardmäßig versteckt Homebrew /usr/bin/du nicht);
  • s erzeugt eine Gesamtsumme für den angegebenen Ordner (lassen Sie diese aus, wenn Sie die Aufschlüsselung sehen wollen);
  • h gibt menschenlesbare Größen aus;
  • L folgt Symlinks;
  • --exclude=.git schließt das git-Verzeichnis innerhalb des angegebenen Ordners aus (dies ist nur ein Beispiel).

Sie können weitere Ordner ignorieren, indem Sie --exclude=blah hinzufügen. Sie können auch mehrere Ordner auf einmal angeben (d.h. gdu folder1 folder2 ...), und in diesem Fall können Sie mit der Option c alle Zwischensummen zu einer einzigen Größe zusammenfassen.