Website-Suche

Alle Verzeichnisse auflisten und nach Größe sortieren


Wenn es darum geht, Ihre Festplatte unter Linux aufzuräumen, entweder um Speicherplatz freizugeben oder um besser organisiert zu werden, ist es hilfreich zu identifizieren, welche Verzeichnisse den meisten Speicherplatz verbrauchen.

In diesem Leitfaden zeigen wir Ihnen, wie Sie alle Verzeichnisse auflisten und nach ihrer Gesamtgröße unter Linux sortieren, indem Sie Befehlszeilenbeispiele, ein Bash-Skript und GUI-Methoden verwenden.

In diesem Tutorial lernen Sie:

  • So listen Sie Verzeichnisse nach Größe mit du-Befehlsbeispielen auf
  • So listen Sie Verzeichnisse nach Größe mit einem Bash-Skript auf
  • So überprüfen Sie die Verzeichnisgrößen mit dem GUI-Dienstprogramm Disk Usage Analyzer

Auflisten der größten Verzeichnisse unter Linux

Auflisten von Verzeichnissen nach Größe über die Befehlszeile

Die Befehlszeilenprogramme df und du sind die beiden besten Werkzeuge, die wir haben, um den Festplattenverbrauch unter Linux zu messen. Um die Festplattenauslastung nach Ordnern zu überprüfen, ist der Befehl du besonders nützlich.

Wenn du ohne zusätzliche Optionen ausgeführt wird, denken Sie daran, dass die gesamte Festplattenauslastung jedes Unterverzeichnisses einzeln überprüft wird. Je nachdem, wie tief Ihre Ordnerstruktur reicht, kann dies eine riesige Anzahl von Verzeichnissen sein, und Ihr Terminal wird mit einer großen Ausgabe zugespammt.

Im folgenden Beispiel führen wir du in einem Verzeichnis voller Linux-ISO-Dateien aus, das jedoch nur ein Verzeichnis tief ist. Wir fügen die Option -h (menschenlesbar) an, damit Sie leichter erkennen können, welche Art von Speicherplatz diese Verzeichnisse verbrauchen.

du -h
11G     ./AlmaLinux
671M    ./Arch Linux
14G     ./CentOS
349M    ./Debian
1.9G    ./Fedora
415M    ./Gentoo
6.5G    ./Kali Linux
9.4G    ./Ubuntu
44G     .

Wir können sehen, dass der AlmaLinux-Ordner 11 GB und der Debian-Ordner nur 349 MB verwendet. Die Gesamtgröße all dieser Ordner beträgt 44 GB, wie in der letzten Zeile angegeben.

Mal sehen, was passiert, wenn wir eine tiefere Ordnerstruktur haben.

du -h
671M    ./Arch Linux
6.5G    ./Debian-based/Kali Linux
9.4G    ./Debian-based/Ubuntu
17G     ./Debian-based
415M    ./Gentoo
11G     ./RHEL-based/AlmaLinux
14G     ./RHEL-based/CentOS
1.9G    ./RHEL-based/Fedora
27G     ./RHEL-based
44G     .

Wie Sie sehen können, haben die Verzeichnisse "Debian-based" und "RHEL-based" zwei bzw. drei Unterverzeichnisse. Dies gibt uns einen ziemlich detaillierten Überblick darüber, wie viel Speicherplatz jedes Unterverzeichnis verwendet. Wenn du eine tiefe Struktur hast, können wir das Flag --max-depth=N verwenden, um dir mitzuteilen, wie viele Unterverzeichnisse tief es durchlaufen soll.

du -h --max-depth=1
671M    ./Arch Linux
17G     ./Debian-based
415M    ./Gentoo
27G     ./RHEL-based
44G     .

Um diese Verzeichnisse nach Größe zu sortieren und so leicht zu erkennen, welche den meisten Speicherplatz verbrauchen, können wir unseren du-Befehl an das Sortierdienstprogramm weiterleiten. Wenn Sie die Option -h für du verwenden, stellen Sie sicher, dass Sie sie auch für sort verwenden.

du -h | sort -h
415M    ./Gentoo
671M    ./Arch Linux
1.9G    ./RHEL-based/Fedora
6.5G    ./Debian-based/Kali Linux
9.4G    ./Debian-based/Ubuntu
11G     ./RHEL-based/AlmaLinux
14G     ./RHEL-based/CentOS
17G     ./Debian-based
27G     ./RHEL-based
44G     .

Oder, um die Anzahl der Verzeichnisse zu begrenzen, die rekursiv durchlaufen werden:

du -h --max-depth=1 | sort -h
415M    ./Gentoo
671M    ./Arch Linux
17G     ./Debian-based
27G     ./RHEL-based
44G     .

In diesen Beispielen haben wir du aus unserem aktuellen Arbeitsverzeichnis ausgeführt. Denken Sie daran, dass Sie mit dem Befehl ein beliebiges Verzeichnis angeben können – Sie müssen sich nicht tatsächlich in dem Verzeichnis befinden, das Sie überprüfen.

du -h /home/linuxconfig

Wenn Sie versuchen, du in Ihrem Stammverzeichnis auszuführen, um Speicherplatz auf der gesamten Festplatte zu sehen, denken Sie daran, dass Sie diesen Befehl mit Root-Rechten ausführen müssen und Sie den Standardfehler auf /dev/null umleiten sollten, da Sie in Ihrer Ausgabe eine Menge "Berechtigung verweigert"-Spam erhalten.

sudo du -h --max-depth=1 / | sort -h 2> /dev/null

Listen Sie die Top 10 der größten Verzeichnisse auf

Mit den obigen Befehlen werden auch kleine Verzeichnisse in der Ausgabe des Befehls du aufgelistet. Oft interessieren Sie sich jedoch nur für die 10 größten Verzeichnisse oder eine ähnliche Zahl. In diesem Fall können wir unsere Ausgabe an den Befehl head weiterleiten, um nur die größten Verzeichnisse anzuzeigen. Beachten Sie, dass wir auch den Befehl tail verwenden, um zu vermeiden, dass die Größe des übergeordneten Verzeichnisses gedruckt wird, was in diesem Fall irrelevant wäre.

du -h --max-depth=1 2> /dev/null | sort -hr | tail -n +2 | head

Bash-Skript zum Auflisten von Verzeichnissen nach Größe

Die Befehle du und sort sollten zusammen mit den Optionen, die wir besprochen haben, ausreichen, um Ihnen zu helfen, die Festplattennutzung nach Ordnern zu überprüfen. Anstatt uns diese verschiedenen Befehlsoptionen zu merken und sie jedes Mal neu eingeben zu müssen, können wir uns das Leben ein wenig erleichtern, indem wir all dies in ein Bash-Skript packen.

Das folgende Bash-Skript akzeptiert 2 Argumente. Das erste Argument ist ein Verzeichnisname, in dem wir unsere Suche starten, und das zweite Argument wird nach einer Anzahl von Verzeichnissen vergeben, die das Skript ausgeben soll.

#!/bin/bash 
 
if [ $# != 2 ]; then 
	echo "Incorrect number of arguments !" >&2 
	echo "USAGE: sortdirbysize [DIRECTORY] <first n directories>" 
fi 
du -h --max-depth=1 $1 2> /dev/null | sort -hr | tail -n +2 | head -$2

Und hier ist ein Beispiel dafür, wie Sie das Skript über die Befehlszeile ausführen würden:

./sort-dir-by-size.sh /home/linux 15

Überprüfen Sie die Festplattenauslastung nach Ordner über die GUI

Manchmal ist es einfacher, die Festplattennutzung zu visualisieren, wenn wir ein GUI-Dienstprogramm verwenden. Eine solche Anwendung heißt Disk Usage Analyzer, ist aber möglicherweise nicht standardmäßig auf Ihrer Linux-Distribution installiert. Verwenden Sie den entsprechenden Befehl unten, um es mit dem Paketmanager Ihres Systems zu installieren.

Manchmal ist es einfacher, die Festplattennutzung zu visualisieren, wenn wir ein GUI-Dienstprogramm verwenden. Eine solche Anwendung heißt Disk Usage Analyzer, ist aber möglicherweise nicht standardmäßig auf Ihrer Linux-Distribution installiert. Verwenden Sie den entsprechenden Befehl unten, um es mit dem Paketmanager Ihres Systems zu installieren.

So installieren Sie Disk Usage Analyzer unter Ubuntu, Debian und Linux Mint:

sudo apt install baobab

So installieren Sie Disk Usage Analyzer unter CentOS, Fedora, AlmaLinux und Red Hat:

sudo dnf install baobab

So installieren Sie Disk Usage Analyzer unter Arch Linux und Manjaro:

sudo pacman -S baobab

Suchen Sie nach der Installation nach der Anwendung und öffnen Sie sie.

Öffnen Sie die Analyse der Festplattenauslastung über den Anwendungs-Launcher

Wenn das Programm geöffnet wird, werden Sie gefragt, ob es das Home-Verzeichnis oder eine ganze Festplatte scannen soll. Sie können auch auf das Optionsmenü (drei gestapelte Striche) klicken, um einen bestimmten Ordner zu scannen.

Wählen Sie aus, ob der Benutzerordner, die gesamte Festplatte oder ein bestimmtes Verzeichnis gescannt werden soll

Treffen Sie Ihre Auswahl und das Dienstprogramm beginnt mit der Suche nach Dateien. Sobald die Suche nach Inhalten abgeschlossen ist, erhalten Sie eine vollständige Anzeige darüber, wie Ihr Festplattenspeicher auf verschiedene Verzeichnisse auf Ihrem System verteilt wird. Es gibt auch eine grafische Darstellung, über die Sie mit dem Mauszeiger fahren können, um eine noch bessere Vorstellung zu bekommen. Es listet Verzeichnisse nach Größe auf, sodass Sie schnell feststellen können, was den meisten Speicherplatz verbraucht.

Die Analyse der Festplattenauslastung zeigt, wie der Speicherplatz in verschiedenen Verzeichnissen verwendet wird

Abschließende Gedanken

In dieser Anleitung haben wir gesehen, wie man Verzeichnisse auflistet und sie unter Linux nach ihrer Gesamtgröße sortiert. Dazu gehörten verschiedene Befehlszeilenbeispiele, die sich hauptsächlich auf das du-Dienstprogramm konzentrierten, sowie ein Bash-Skript und eine GUI-Methode. Alle Methoden sind in der Lage, uns eine schnelle Zusammenfassung der Speichernutzung oder eine detaillierte Aufschlüsselung der Nutzung des Speicherplatzes in verschiedenen Verzeichnissen auf unserem System zu geben.

Verwandte Artikel: