it-swarm.com.de

Zeigen Sie jede Unterverzeichnisgröße in einem Listenformat an, indem Sie einen einzeiligen Befehl in Bash?

Ich möchte eine Liste der Verzeichnisse und ihrer Größen in einem Listenformat erhalten, wie Sie es erhalten, wenn Sie einen ls -l erstellen.

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

Welcher Befehl kann dies oder eine Kombination von Befehlen, die einfach eingegeben werden können? du -h gibt es, aber es zeigt alle Unterordner an, was nicht das ist, was ich will. nur die aktuellen Verzeichnisse Ordner.

97

Sie möchten wahrscheinlich die Verzeichnisse nach Größe sortiert 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
62
raychi

Versuche dies

du -h --max-depth=1

Ausgabe

[email protected]:/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 etwas zu lang ist, können Sie auch versuchen, Folgendes zu verwenden:

du -h -s *

Dabei wird -s (--summarize) verwendet und standardmäßig nur die Größe des Ordners selbst gedruckt. Durch Übergabe aller Elemente im aktuellen Arbeitsverzeichnis (*) wird eine ähnliche Ausgabe wie bei --max-depth=1 erzeugt:

Ausgabe

[email protected]:/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 vorherige Ansatz zeigt die Gesamtgröße des aktuellen Arbeitsverzeichnisses und die Gesamtgröße aller darin enthaltenen Ordner an ... jedoch nur bis zu einer Tiefe von 1.

Der letztere Ansatz berechnet die Gesamtgröße aller übergebenen Elemente einzeln . Daher wird der Symlink lib64 in die Ausgabe einbezogen, die ausgeblendeten Elemente (deren Name mit einem Punkt beginnt) werden jedoch ausgeschlossen. Es fehlt auch die Gesamtgröße für das aktuelle Arbeitsverzeichnis, da dies nicht als Argument übergeben wurde.

119
Der Hochstapler

Drucken Sie die Größe aller Dateiordner und versteckten Dateien auf der Festplatte:

[email protected] /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
6
Eric Leschinski

Erwähnenswert ist der Befehl NCurses Disk Usage Shell.

Ncdu ist ein Datenträgerverwendungsanalysator mit einer ncurses-Schnittstelle. Es wurde entwickelt, um Space Hogs auf einem Remote-Server zu finden, auf dem keine vollständige grafische Konfiguration verfügbar ist. Es ist jedoch ein nützliches Tool, selbst auf normalen Desktop-Systemen. Ncdu soll schnell, einfach und benutzerfreundlich sein und in jeder POSIX-ähnlichen Minimalumgebung mit installierten ncurses ausgeführt werden können.

2
Ray