2013-02-19 15:34:27 +0000 2013-02-19 15:34:27 +0000
104
104

Die Größe der einzelnen Unterverzeichnisse in einem Listenformat mit einem einzeiligen Befehl in der Bash anzeigen?

Ich möchte eine Liste der Verzeichnisse und ihre Größen in einem Listenformat erhalten, wie Sie erhalten, wenn Sie ein ls -l tun.

Die Frage ist, ob es einen einzeiligen Befehl gibt, der dies tun kann? Ich sehe, dass andere lange Befehle haben, nur um dies auszugeben. Das ist einfach zu lang.

Welcher Befehl kann das machen oder eine Kombination von Befehlen, die man einfach eintippen kann? du -h gibt es, aber es zeigt alle Unterordner an, was nicht das ist, was ich will. nur die aktuellen Verzeichnisse Ordner.

Antworten (4)

126
126
126
2013-02-19 15:36:20 +0000

Versuchen Sie dies

du -h --max-depth=1

Ausgabe

oliver@home:/usr$ sudo du -h --max-depth=1
24M ./include
20M ./sbin
228M ./local
4.0K ./src
520M ./lib
8.0K ./games
1.3G ./share
255M ./bin
2.4G .

Alternative

Wenn --max-depth=1 für Ihren Geschmack ein bisschen zu lang ist, können Sie auch versuchen, dies zu verwenden:

du -h -s *

Dies verwendet -s (--summarize) und wird standardmäßig nur die Größe des Ordners selbst ausgeben. Wenn Sie alle Elemente im aktuellen Arbeitsverzeichnis (*) übergeben, ergibt sich eine ähnliche Ausgabe wie bei --max-depth=1:

Ausgabe

oliver@cloud:/usr$ sudo du -h -s *
255M bin
8.0K games
24M include
520M lib
0 lib64
228M local
20M sbin
1.3G share
4.0K src

Der Unterschied ist subtil. Der erste Ansatz zeigt die Gesamtgröße des aktuellen Arbeitsverzeichnisses und die Gesamtgröße aller darin enthaltenen Ordner an … aber nur bis zu einer Tiefe von 1.

Der zweite Ansatz berechnet die Gesamtgröße aller übergebenen Elemente individuell. Er schließt also den Symlink lib64 in die Ausgabe ein, schließt aber die versteckten Elemente (deren Name mit einem Punkt beginnt) aus. Es fehlt auch die Gesamtgröße für das aktuelle Arbeitsverzeichnis, da dieses nicht als Argument übergeben wurde.

79
79
79
2016-06-17 23:04:29 +0000

Wahrscheinlich wollen Sie die Verzeichnisse nach Größe geordnet sehen:

$ du -hs * | sort -hr

856M lib
746M share
612M lib64
312M src
267M java
239M bin
179M sbin
173M local
93M i686-w64-mingw32
72M libexec
26M include
20M puppet
772K X11R6
20K man
4.0K games
4.0K etc
0 tmp
6
6
6
2014-11-06 14:52:37 +0000

Gibt die Größen aller Dateien, Ordner und versteckten Dateien auf der Festplatte aus:

el@dev /home/el $ du -sh `ls -a`
258M .
265M ..
4.0K .classpath
258M .git
4.0K .gitignore
9.0K nbactions.xml
12K README
20K .README.swp
4.0K run.sh
23K XmlPostPropagate.php
3
3
3
2016-06-12 12:29:56 +0000

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

Ncdu ist ein Festplattennutzungsanalysator mit einer ncurses-Schnittstelle. Es wurde entwickelt, um Platzfresser auf einem entfernten Server zu finden, auf dem Sie keine vollständige grafische Oberfläche zur Verfügung haben, aber es ist auch auf normalen Desktop-Systemen ein nützliches Werkzeug. Ncdu zielt darauf ab, schnell, einfach und leicht zu bedienen zu sein, und sollte in jeder minimalen POSIX-ähnlichen Umgebung mit installiertem ncurses laufen können.