Gdu, Godu und Duf erleichtern durch schnelles Ausführen und gute grafische Umsetzung die Aufgabe, den Füllstand von Festplatten zu kontrollieren.
Festplatten kennen eigentlich nur drei Zustände: leer, kaputt und voll. Letzteren Zustand erreichen sie meist schneller als erwartet. Das liegt in der Regel daran, dass wir gemäß unserer Natur unachtsam Daten auf dem Rechner horten, so wie wir Dinge in die Kramschublade in der Küche packen.
Es kommt auch vor, dass eine im Millisekundentakt protokollierte Fehlermeldung eine Logdatei dermaßen zumüllt, dass selbst große Festplatten über Nacht volllaufen und wir am Morgen einen lahmenden Rechner vorfinden. Berüchtigt hierfür war in der Vergangenheit etwa die Datei .xsession-errors, die versteckt im Home-Verzeichnis liegt und bei uns mehrmals Größenordnungen von mehreren Hundert GByte annahm.
Leer, voll, kaputt
Läuft die Platte voll, gilt es zunächst, die Ursache dafür zu ergründen. Es gibt bei Plasma und Gnome grafische Werkzeuge wie Filelight, Graphical Disk Map oder Baobab, die die Belegung des Mediums grafisch darstellen. Diese Werkzeuge arbeiten sehr behäbig und eignen sich ohnehin nicht für unseren angenommenen Notfall einer komplett vollen Platte; dasselbe gilt für den Betrieb auf Servern im Netz. Hier bieten sich terminalbasierte Problemlösungen an, denn bei einer Plattenbelegung von über 95 Prozent startet häufig auch die grafische Oberfläche nicht mehr. Die Fragestellung, die sich hier ergibt, lautet: Welche Verzeichnisse oder Dateien belegen den meisten Platz auf der Platte?
Mit den Linux-Bordmitteln wie Du oder Df kommen Sie zwar diesem Problem bei, sie glänzen aber nicht unbedingt durch Übersichtlichkeit. So lassen sich beispielsweise mit dem Du-Befehl aus Listing 1 zwar die 20 größten Verzeichnisse im Home anzeigen, allerdings ziemlich umständlich.
Listing 1
Prüfung mit Du
$ du -a /home/ | sort -n -r | head -n 20
In LU 06/2018 [1] stellten wir mit Ncdu [2] ein Ncurses-basiertes Werkzeug als Erweiterung für Du vor, das den Job hervorragend erledigt und dessen einziger Pferdefuß die fehlende Geschwindigkeit beim Indexieren darstellt. Ncdu verbreitete sich schnell und findet sich zwischenzeitlich in den Archiven aller großen Distributionen.
Testen lohnt
Die drei Werkzeuge, die wir heute als Alternativen vorstellen, zählen eher zur Kategorie weniger bekannter Geheimtipps. Der Mehraufwand bei der Installation lohnt sich aber, da sowohl Gdu [3] als auch Godu [4] und Duf [5] das Tool Ncdu ganz oder teilweise ersetzen und ihre Aufgabe zudem blitzschnell erledigen. Alle drei beziehen ihre Geschwindigkeit aus der Programmiersprache Go, in der die Entwickler sie schrieben, während Ncdu in C verfasst wurde. Die hier vorgestellten Tools optimierten deren Macher auf den SSD-Einsatz, was auch die Parallelverarbeitung voll ausnutzt. Bei HDDs fällt der Leistungsgewinn nach Aussagen des Gdu-Entwicklers zwar kleiner aus, bleibt aber immer noch spürbar.
Gdu
Den höchsten Bekanntheitsgrad erreicht aktuell Gdu, das Sie bei Debian, Devuan, Manjaro, PureOS und Raspberry Pi OS in den Archiven finden. Auf der Webseite stehen zusätzlich Pakete für 32- und 64-Bit-Linux sowie für ARM und viele BSD-Varianten bereit. Bei Arch Linux findet sich Gdu im AUR.
Verwenden Sie Snap, installieren Sie die Software mit dem Kommandozeilenaufruf aus der ersten Zeile von Listing 2; die weiteren Schritte verrät die Github-Seite des Projekts. Wenn Ihre Distribution es nicht führt, lässt sich das Tool auch per Kommandozeile schnell installieren (Zeilen 2 bis 4).
Listing 2
Gdu installieren
$ sudo snap install gdu-disk-usage-analyzer $ curl -L https://github.com/dundee/gdu/releases/latest/download/gdu_linux_amd64.tgz | tar xz $ chmod +x gdu_linux_amd64 $ sudo mv gdu_linux_amd64 /usr/bin/gdu
Ein erster Start über die Eingabe gdu -h listet der Startparameter auf. Mit gdu -d sehen Sie alle eingehängten Partitionen mit deren Größe sowie dem verwendeten und freien Platz (Abbildung 1). Der Parameter -i schließt Verzeichnisse aus, ein Verlaufsprotokoll erhalten Sie mit gdu -l.

Abbildung 1: Mit dem Befehl gdu -d erhalten Sie einen Überblick über die eingehängten Festplatten und die Belegung der Partitionen.
Normalerweise läuft das Tool im interaktiven Modus, den Sie für den Einsatz in Skripten per -n ausschalten. Wenn Sie es lieber schwarz auf weiß mögen, schaltet -c die farbige Darstellung aus. In Gdu navigieren Sie wie in Ncdu mit den Pfeiltasten. Mit [Eingabe]+ oder [Pfeil-rechts]+ wechseln Sie ins gewählte Verzeichnis, mit [Pfeil-links]+ geht es wieder eine Verzeichnisebene nach oben. Mit [Q] kehren Sie ins Terminal zurück.
Die Eingabe von [Umschalt]+[ß] innerhalb von Gdu listet die verfügbaren Optionen auf (Abbildung 2). Die Tabelle “Gdu-Befehlsreferenz” zeigt weitere Shortcuts. Rufen Sie Gdu ohne Parameter auf, zeigt es die Belegung des aktuellen Arbeitsverzeichnisses. Durch Angabe eines Pfads steuern Sie Gdu zielgenau zu einem Ort im Dateisystem, ohne sich dort zu befinden (Abbildung 3).

Abbildung 3: Mit der entsprechenden Pfadangabe zeigt das Tool die Belegung eines bestimmten Verzeichnisses an.
|
Taste |
Funktion |
|---|---|
|
[Pfeil-oben] |
in der Ausgabe nach oben |
|
[Pfeil-unten] |
in der Ausgabe nach unten |
|
[Pfeil-rechts] |
ins markierte Verzeichnis wechseln |
|
[Pfeil-links] |
eine Verzeichnisebene nach oben |
|
[Eingabe] |
ins markierte Verzeichnis wechseln |
|
[A] |
Wechsel effektive Größe / belegter Platz |
|
[C] |
nach Anzahl der Inhalte sortieren |
|
[D] |
markierte Datei löschen |
|
[J] |
in der Ausgabe nach unten |
|
[K] |
in der Ausgabe nach oben |
|
[L] |
ins markierte Verzeichnis wechseln |
|
[N] |
nach Dateinamen sortieren |
|
[Q] |
Gdu schließen |
|
[R] |
markiertes Element neu kalkulieren |
|
[S] |
nach Dateigröße sortieren |
Der einzige destruktive Parameter [D]+ löscht die gewählte Datei oder das Verzeichnis. Alternativ zu den Pfeiltasten bewegen Sie sich mit [K]+ nach oben und mit [J]+ nach unten. Mit [L] steigen Sie in das gewählte Verzeichnis ab.
Insgesamt lehnt sich Gdu beim Aussehen wie bei der Bedienung sehr an Ncdu an, wobei Ncdu über mehr Optionen verfügt. Der größte Unterschied besteht jedoch in der Geschwindigkeit. Ncdu benötigte im Test zum Scannen eines Home-Verzeichnisses mit rund 280 GByte Inhalten auf einer NVMe-Disk 7,4 Sekunden. Gdu erledigte die Aufgabe binnen Millisekunden so schnell, dass sich die Dauer mit der Stoppuhr nicht mehr messen ließ. Interessant wäre der Vergleich beider Tools auf einer HDD, die aber für den Test nicht zur Verfügung stand.
Godu
Dasselbe Ziel verfolgt Godu mit einem etwas anderen Ansatz. Der Unterschied liegt in der Darstellung: Die Software verwendet Miller-Spalten [6], um eine flexiblere Visualisierung zu ermöglichen (Abbildung 4). Die Spalten erlauben das gleichzeitige Öffnen mehrerer Hierarchieebenen und bieten einen besseren Überblick, wo im Verzeichnisbaum Sie sich gerade befinden.

Abbildung 4: Um möglichst viele Inhalte im Terminal unterzubringen, verwendet Godu für die Darstellung der Inhalte Miller-Spalten.
Die einfachste Möglichkeit, Godu auf den Rechner zu bringen, besteht im Herunterladen des entsprechenden Archivs mit der Binärdatei [7], die Sie anschließend entpacken und nach ~/.local/bin/ verschieben. Sollte das Verzeichnis bei Ihnen nicht existieren, erstellen Sie es und fügen es in den Pfad ein, indem Sie die ~/.basrc um die Zeile aus Listing 3 ergänzen. Ein anschließendes source ~/.bashrc aktiviert die Änderung. Sollen alle User Godu nutzen, legen Sie es unter /usr/local/bin/ ab. Weitere Installationsmethoden bieten Homebrew oder eine Golang-Umgebung. Letzteres ist für reine Anwender aber eher umständlich.
Listing 3
Pfad ergänzen
export PATH="/home/$USER/.local/bin:$PATH"
Ein Blick auf godu -h klärt darüber auf, dass die Software außer der Hilfe und der Versionsangabe nur einen Parameter mitbringt: Per godu -l lassen sich Dateien ausschließen, die eine vorgegebene Größe unterschreiten. So scannt etwa der Befehl godu -l 100 / den gesamten Dateibaum, berücksichtigt aber nur Dateien mit mehr als 100 MByte Größe. Diese praktische Möglichkeit fehlt Gdu. Geben Sie nichts anderes an, verwendet die Software für -l 10 MByte als Grenze.
Möchten Sie bestimmte Verzeichnisse von der Anzeige ausschließen, tragen Sie sie in die Datei .goduignore im Home-Verzeichnis ein, die Sie dazu erstellen müssen. Auch das kann das Scannen der Inhalte beschleunigen, insbesondere, wenn Sie Verzeichnisse mit einer Vielzahl an kleinen Dateien ausschließen.
Die Navigation erfolgt auch bei Godu mit den Pfeiltasten. Es lassen sich bis zu drei Ebenen nebeneinander öffnen. Steigen Sie weiter hinab, so verschwindet die links angezeigte Ebene und macht rechts Platz für eine neue (Abbildung 5). Mit einem Druck auf die Leertaste markieren Sie mehrere Verzeichnisse oder Dateien und merken sie damit zum Löschen oder Verschieben vor.

Abbildung 5: Wenn Sie in dieser Darstellung in der rechten Spalte auf ein Verzeichnis klicken, öffnet es sich rechts davon, während Godu die linke Spalte ausblendet, um den nötigen Platz zu schaffen.
Um die markierten Einträge zu löschen oder zu verschieben, verlassen Sie Godu mit [Q] und benutzen den Befehl godu -print0 | xargs -0 Kommando, wobei Sie als Kommando den für die gewünschte Aktion passenden Befehl eintragen. Zum Verschieben zuvor markierter Einträge nutzen Sie etwa den Befehl aus der ersten Zeile von Listing 4. Um den Vorgang zu vereinfachen, legen Sie in der Bashrc einen entsprechenden Alias an (zweite Zeile).
Listing 4
Markierte Einträge verschieben
$ godu -print0 | xargs -0 -I _ mv _ Ziel $ alias gmv="godu -print0 | xargs -0 -I _ mv _ "
Dabei sorgt Godu für mehr Übersicht, indem es alle zuvor markierten Objekte nach dem Beenden zur Kontrolle in der Standardausgabe ausgibt. Es lohnt sich, diese Liste genau durchzusehen, bevor Sie Xargs darauf loslassen.
Duf
Das dritte Werkzeug im Bunde heißt Duf, was für Disk Usage/Free steht. Es unterscheidet sich von den Mitbewerbern sowohl in Bezug auf die Bedienung als auch auf die Anzeige der Ergebnisse. Die Software steht für Alpine, NixOS und Void Linux in den jeweiligen Repositorys bereit, unter Arch Linux finden Sie es im AUR. Der Entwickler bietet zudem auf Github [8] eine Vielzahl von Binaries für verschiedene Linux- und BSD-Distributionen, für MacOS und Windows sowie für ARM an. Duf läuft aber auch auf Android. Dazu geben Sie in der Android-App Termux den Befehl pkg install duf ein.
Auf den ersten Blick überzeugt die Darstellung nach Eingabe von duf ohne weitere Parameter. Von den vorgestellten Programmen bietet es den übersichtlichsten und ausführlichsten Blick auf die eingehängten Geräte und unterscheidet dabei zwischen lokalen und Netzwerkgeräten. Als dritte Kategorie zeigt das Tool per Tmpfs in den Arbeitsspeicher eingehängte Verzeichnisse an. Der Parameter -all erweitert die Anzeige nochmals um eingehängte FUSE-Geräte sowie um die Pseudodateisysteme unter /proc und /sys (Abbildung 6).

Abbildung 6: Duf bietet den besten Überblick über alle eingehängten Dateisysteme und zeigt neben lokalen Partitionen und Netzwerkgeräten auch virtuelle Dateisysteme an.
Ein Blick auf duf -h zeigt mehr als ein Dutzend weitere Möglichkeiten, um die Ausgabe zu gestalten. Mit duf -hide Bereich blenden Sie einzelne Bereiche aus, mit duf -only Bereich zeigt es nur bestimmte Bereiche an. Die standardmäßig dunkle Darstellung stellen Sie mit duf -theme light auf ein helles Theme um.
Mit Duf navigieren Sie nicht, Sie definieren die Ansicht der Einhängepunkte lediglich über die Optionen beim Start. Das Sortieren der Ausgabe geschieht über die Parameter --sort und --output, denen Sie Schlüsselwörter zuordnen, die Sie bei Bedarf in der Hilfe finden. So sortiert duf --sort size die Einhängepunkte nach Größe, während duf --output mountpoint lediglich die Einhängepunkte ohne weitere Angaben auflistet.
Mit duf -json erhalten Sie eine Ausgabe, die sich mit anderen Anwendungen weiterverarbeiten lassen. Das Manipulieren von Daten bleibt allerdings den Kontrahenten vorbehalten, Duf bietet keinen interaktiven Modus (Abbildung 7).

Abbildung 7: Der Befehl duf -json stellt die angeforderten Daten im JSON-Format dar und erlaubt so das Weiterverarbeiten mit anderen Werkzeugen.
Fazit
Egal, ob Sie Ncdu bereits verwenden – ein Blick auf Gdu lohnt sich allemal. Godu arbeitet ebenso schnell wie Gdu, bietet aber einen breiteren Überblick. Ihm sollten Sie den Vorzug geben, wenn Sie Verzeichnisse und Dateien ausschließen oder nur ab einer gewissen Größe einlesen möchten. Zudem erlaubt Godu das Löschen zuvor markierter Objekte.
Geht es lediglich um die Anzeige sämtlicher eingehängter Geräte und deren Größe, bietet Duf die beste Übersicht. In allen anderen Belangen überzeugt die Konkurrenz jedoch mit mehr Flexibilität. Alle drei Kandidaten bieten aber in der einen oder anderen Hinsicht mehr als die Standardwerkzeuge Du und Df. (tle/jlu)
Infos
-
Ncdu: Ferdinand Thommes, “Flinker Jäger”, LU 06/2018, S. 54, https://www.linux-community.de/41145
-
Miller-Spalten: https://de.qaz.wiki/wiki/Miller_columns
-
Godu herunterladen: https://github.com/viktomas/godu/releases/latest
-
Duf herunterladen: https://github.com/muesli/duf/releases

![Abbildung 2: Das im Gdu-Fenster gedrückte <span class="key-combo">[Umschalt]+[ß]</span> blendet ein Fenster mit Parametern ein.](/wp-content/uploads/2021/06/b02_gdu-hilfe-300x183.jpg)




