Harting Development

So ermitteln Sie die Größe eines Verzeichnisses in Linux

Lukas Fuchs vor 8 Monaten in  Leistungsoptimierung 3 Minuten Lesedauer

Befehle zum Ermitteln der Verzeichnisgröße

Wenn du die Größe eines Verzeichnisses in Linux ermitteln möchtest, stehen dir mehrere Befehle zur Verfügung. Die gebräuchlichsten sind:

'du' (Disk Usage)

Der Befehl du zeigt den Speicherplatzbedarf von Dateien und Verzeichnissen an. Standardmäßig gibt du die Größe jedes angegebenen Verzeichnisses in 1-Kilobyte-Blöcken aus.

Um beispielsweise die Größe des Verzeichnisses /home/user/Dokumente zu ermitteln, gibst du Folgendes ein:

du /home/user/Dokumente

'df' (Disk Free)

Der Befehl df zeigt den verfügbaren und genutzten Speicherplatz von Dateisystemen an. Du kannst ihn auch verwenden, um die Größe von Verzeichnissen innerhalb eines Dateisystems zu ermitteln.

Um beispielsweise die Größe des Verzeichnisses /home innerhalb des Dateisystems /dev/sda1 zu ermitteln, gibst du Folgendes ein:

df -h /dev/sda1 | grep /home

'stat'

Der Befehl stat gibt Informationen über eine Datei oder ein Verzeichnis aus, einschließlich seiner Größe.

Um beispielsweise die Größe der Datei /home/user/Dokumente/bericht.txt zu ermitteln, gibst du Folgendes ein:

stat /home/user/Dokumente/bericht.txt

Verstehen der verschiedenen Ausgabeformate

Die Ausgabe der Befehle zur Verzeichnisgrößenermittlung kann in verschiedenen Formaten erfolgen. Dies kann verwirrend sein, wenn du nicht weißt, welche Informationen angezeigt werden. Hier ist eine Aufschlüsselung der gängigsten Formate:

Menschlich lesbares Format

Dieses Format gibt die Verzeichnisgröße in einer für Menschen lesbaren Form aus, beispielsweise "100 MB" oder "2 GB". Es ist das Standardformat für die meisten Befehle und wird für eine schnelle und einfache Übersicht empfohlen.

Blockgröße

Einige Befehle geben die Verzeichnisgröße in Blöcken aus. Ein Block ist eine feste Größe, typischerweise 512 Bytes oder 1 KB. Wenn die Ausgabe beispielsweise "1024" Blöcke lautet, beträgt die Gesamtverzeichnisgröße 1024 * 1 KB = 1 MB.

Byte-Format

Die Verzeichnisgröße kann auch in Byte ausgegeben werden, der kleinsten Maßeinheit für Daten. Wenn die Ausgabe beispielsweise "1000000" Byte lautet, beträgt die Gesamtverzeichnisgröße 1000000 Bytes = 1 MB.

Weitere Optionen

Zusätzlich zu diesen Standardformaten gibt es erweiterte Optionen, die die Ausgabe der Verzeichnisgröße anpassen können, wie z. B.:

  • -h: Formatiert die Ausgabe mit menschlichen Einheiten (z. B. "100 MB").
  • -c: Zeigt die Gesamtgröße aller aufgelisteten Verzeichnisse an.
  • -S: Sortiert die Ausgabe nach Verzeichnisgröße.
  • --block-size=<Größe>: Gibt die Blockgröße in Bytes an.

Ausfiltern von versteckten Dateien und Verzeichnissen

Unter Linux beginnen versteckte Dateien und Verzeichnisse mit einem Punkt (.). Wenn du nur die Größe der sichtbaren Dateien und Verzeichnisse ermitteln möchtest, kannst du die folgenden Befehle verwenden:

  • du -s --exclude=.*: Dieser Befehl schließt alle Dateien und Verzeichnisse mit einem Punkt am Anfang vom Scan aus.

Ausnahme von versteckten Dateien in bestimmten Verzeichnissen

In einigen Fällen möchtest du möglicherweise versteckte Dateien in bestimmten Verzeichnissen ausschließen. Dazu kannst du das Flag --exclude-from verwenden, um eine Datei anzugeben, die eine Liste der auszuschließenden Verzeichnisse enthält.

  • du -s --exclude-from=exclude.txt: Dieser Befehl schließt alle Verzeichnisse aus, die in der Datei exclude.txt aufgeführt sind.

Anzeigen von versteckten Dateien und Verzeichnissen

Du kannst versteckte Dateien und Verzeichnisse im Ausgabeverzeichnis mit dem Befehl -a einbeziehen.

  • du -as: Dieser Befehl zeigt die Größe aller Dateien und Verzeichnisse im aktuellen Verzeichnis an, einschließlich versteckter Dateien.

Überlegungen zur Dateisystemgröße

Beachte, dass diese Befehle die Größe von Dateien und Verzeichnissen auf dem aktuellen Dateisystem ermitteln. Wenn du die Größe versteckter Dateien auf mehreren Dateisystemen ermitteln möchtest, musst du diesen Vorgang für jedes Dateisystem wiederholen.

Ausgeben der Verzeichnisgröße in verschiedenen Einheiten

Wenn du die Größe eines Verzeichnisses bestimmst, ist es möglicherweise hilfreich, die Ausgabe in verschiedenen Einheiten anzuzeigen, z. B. Bytes, Kilobytes, Megabytes oder Gigabytes. Auf diese Weise kannst du die Größe des Verzeichnisses leichter mit anderen Verzeichnissen oder Dateisystemen vergleichen.

Du-Befehl mit dem Flag "-h"

Der du-Befehl verfügt über ein Flag -h, das die Ausgabe im humanlesbaren Format anzeigt. Das heißt, er wandelt die Größe des Verzeichnisses automatisch in die am besten geeignete Einheit um, z. B. in Megabytes (MB) oder Gigabytes (GB).

du -h Verzeichnisname

Du-Befehl mit dem Flag "--block-size"

Du kannst auch das Flag --block-size mit dem du-Befehl verwenden, um die Ausgabedaten in einer bestimmten Blockgröße anzuzeigen. Wenn du z. B. die Verzeichnisgröße in Kilobytes anzeigen möchtest, kannst du Folgendes verwenden:

du --block-size=1024 Verzeichnisname

Du kannst auch andere Blockgrößen festlegen, z. B. 512 oder 4096.

Bash-Befehl "Einheitenpräfixe"

Alternativ kannst du Bash-Befehlseinheitenpräfixe verwenden, um die Größe des Verzeichnisses in verschiedenen Einheiten anzuzeigen. Hier sind einige gebräuchliche Präfixe:

  • k für Kilobytes
  • M für Megabytes
  • G für Gigabytes
  • T für Terabytes
du -sb Verzeichnisname |  awk '{print $1$2}'

Rekursives Ermitteln der Gesamtgröße aller Unterverzeichnisse

Möchtest du die Gesamtgröße aller Dateien und Verzeichnisse in einem Verzeichnisbaum ermitteln? Mit dem Befehl du kannst du dies rekursiv tun, indem du die Option -a verwendest.

Verwendung von du -a

Um die Gesamtgröße aller Unterverzeichnisse einschließlich versteckter Dateien und Verzeichnisse zu ermitteln, nutze den folgenden Befehl:

du -a

Dieser Befehl gibt die Größe jedes Unterverzeichnisses sowie die Gesamtgröße des aktuellen Verzeichnisses aus.

Rekursive Ausgabe mit du -a --max-depth=N

Du kannst die Rekursion auf eine bestimmte Ebene begrenzen, indem du die Option --max-depth verwendest. Dies ist hilfreich, wenn du lediglich die Größe eines bestimmten Zweigs des Verzeichnisbaums ermitteln möchtest. Beispielsweise kannst du die Größe aller Dateien und Verzeichnisse bis zu einer Tiefe von 3 Ebenen ermitteln:

du -a --max-depth=3

Verstehen der Ausgabe

Die Ausgabe des Befehls du -a kann überwältigend sein. Es ist wichtig, die verschiedenen Spalten zu verstehen:

  • Größe: Die Größe jedes Unterverzeichnisses in Bytes
  • Kumulativ: Die kumulative Größe jedes Unterverzeichnisses und seiner Unterverzeichnisse
  • Pfad: Der absolute Pfad des Unterverzeichnisses

Fehlerbehebung

Falls du Schwierigkeiten hast, die Gesamtgröße eines Verzeichnisbaums zu ermitteln, überprüfe Folgendes:

  • Berechtigungen: Stelle sicher, dass du über ausreichende Berechtigungen zum Zugriff auf das Verzeichnis verfügst.
  • Speicherplatz: Vergewissere dich, dass ausreichend Speicherplatz für die Durchführung des Befehls vorhanden ist.
  • Groß-/Kleinschreibung: Beachte die Groß-/Kleinschreibung der Verzeichnisnamen.

Befehlszeilenoptionen für zusätzliche Funktionen

Neben den oben genannten grundlegenden Optionen kannst du verschiedene Befehlszeilenoptionen nutzen, um die Funktionalität des Befehls du zu erweitern.

Sortieren der Ausgabe

Verwende die Option -s (summarize), um die Größe aller angegebenen Verzeichnisse zusammenzufassen und eine einzelne Zeile auszugeben. Dies kann hilfreich sein, wenn du einen schnellen Überblick über die Größen mehrerer Verzeichnisse erhalten möchtest.

Ausgeben von Größen in verschiedenen Einheiten

Standardmäßig gibt du Größen in Bytes aus. Du kannst die Option -h (human-readable) verwenden, um die Größen stattdessen in benutzerfreundlicheren Einheiten wie Kilobytes (KB), Megabytes (MB) oder Gigabytes (GB) auszugeben.

Ignorieren versteckter Dateien und Verzeichnisse

Wenn du versteckte Dateien und Verzeichnisse aus deinen Größenberechnungen ausschließen möchtest, verwende die Option --exclude-from=<Datei>. Hierbei gibst du den Pfad zu einer Textdatei an, die eine Liste mit zu ignorierenden Mustern enthält.

Rekursiver Abruf der Größe

Standardmäßig berechnet du nur die Größe des angegebenen Verzeichnisses. Um auch die Größe aller Unterverzeichnisse rekursiv zu berechnen, verwende die Option -r (recursive).

Gruppieren von Ergebnissen nach Verzeichnishierarchie

Verwende die Option -d <Tiefe> (depth), um die Ergebnisse nach Verzeichnishierarchie zu gruppieren. Dies kann dir helfen, die Verzeichnisstruktur besser zu verstehen und zu ermitteln, wo der Großteil des Speicherplatzes belegt ist.

Direktes Ausgeben der Gesamtgröße

Wenn du nur an der Gesamtgröße eines Verzeichnisses interessiert bist, verwende die Option -c (total). Dies gibt die Gesamtgröße aller angegebenen Verzeichnisse aus, ohne Details zu einzelnen Unterverzeichnissen.

Ermitteln der Größe von Dateisystemen

Neben der Bestimmung der Verzeichnisgröße kannst du auch die Größe von Dateisystemen ermitteln. Dies ist nützlich, um den Speicherverbrauch zu überwachen und zu verhindern, dass du den Speicherplatz erschöpfst.

Befehl df

Der Befehl df (disk free) gibt Informationen über die Dateisysteme deines Systems aus, einschließlich ihrer Größe und Nutzung. Um die Größe eines bestimmten Dateisystems zu ermitteln, verwende die Option -h (human-readable), um die Ausgabe in ein lesbares Format zu konvertieren.

df -h /

Dies zeigt die Größe des Root-Dateisystems (/), den verwendeten Speicherplatz, den freien Speicherplatz und den Prozentsatz der Auslastung an.

Befehl du

Du kannst auch den Befehl du verwenden, um die Größe des Dateisystems zu ermitteln. Die Option -s (summarize) zeigt die Gesamtgröße des angegebenen Dateisystems an.

du -s /

Dieser Befehl gibt die Größe des Root-Dateisystems in Bytes aus.

Weitere Informationen

  • df(1): Manpage des Befehls df
  • du(1): Manpage des Befehls du

Denke daran, dass die Ausgabeformate und Optionen je nach verwendetem Befehl und Betriebssystem variieren können.

Visualisierung der Verzeichnisgröße mit Tools wie 'du -s --block-size=1'

Als Nutzer möchtest du vielleicht nicht immer nur Zahlen sehen, sondern auch eine visuelle Darstellung der Verzeichnisgrößen. Hier kommt das Tool du ins Spiel. Mit der Option -s kannst du die Gesamtgröße eines Verzeichnisses ausgeben, und mit der Option --block-size=1 kannst du die Größe in Blöcken mit einer Größe von 1 Byte angeben.

Wenn du diesen Befehl ausführst, erhältst du eine Liste aller Verzeichnisse und Dateien im aktuellen Verzeichnis mit ihren entsprechenden Größen in Blöcken. Dies kann hilfreich sein, um große Verzeichnisse zu identifizieren und zu visualisieren, wo dein Speicherplatz belegt ist.

Beispiel

Führe den folgenden Befehl aus, um die Gesamtgröße des aktuellen Verzeichnisses in Blöcken auszugeben:

du -s --block-size=1

Dadurch erhältst du eine Ausgabe ähnlich der folgenden:

4096    ./Verzeichnis1
2048    ./Verzeichnis2
1024    ./Datei1.txt
512     ./Datei2.txt

Wie du siehst, werden die Verzeichnisse und Dateien im aktuellen Verzeichnis aufgelistet, zusammen mit ihren entsprechenden Größen in Blöcken. Dies kann dir ein besseres Verständnis davon vermitteln, wie der Speicherplatz in deinem Verzeichnis verteilt ist.

Einschränkungen

Denke daran, dass die Ausgabe von du von der Größe der Blöcke abhängt, die dein Dateisystem verwendet. Daher können die Größen, die du siehst, je nach Dateisystem variieren.

Fehlerbehebung bei häufigen Problemen

Problem: Der Befehl "du" gibt keine Ausgabe aus

Mögliche Ursache: Du verfügst nicht über die erforderlichen Berechtigungen für den Zugriff auf das Verzeichnis. Lösung: Führe den Befehl mit Administratorrechten aus (z. B. mit "sudo du ").

Problem: Die Ausgabe ist nicht im gewünschten Format

Mögliche Ursache: Du verwendest nicht die richtige Befehlsoption. Lösung: Verwende die Option "-h" für eine Ausgabe im lesbaren Format oder "-c" für eine kumulative Summe. Beispiel: du -sh zeigt die Größe in lesbaren Einheiten an, während du -c die Gesamtgröße aller Unterverzeichnisse ausgibt.

Problem: Versteckte Dateien und Verzeichnisse werden nicht berücksichtigt

Mögliche Ursache: Du verwendest nicht die Option "-a". Lösung: Führe den Befehl mit der Option "-a" aus, um auch versteckte Dateien und Verzeichnisse einzubeziehen. Beispiel: du -ah

Problem: Die Größe wird nicht in der gewünschten Einheit angezeigt

Mögliche Ursache: Du verwendest nicht die richtige Option "-B". Lösung: Verwende die Option "-B" gefolgt von der gewünschten Einheit (z. B. "k" für Kilobyte, "M" für Megabyte oder "G" für Gigabyte). Beispiel: du -Bh zeigt die Größe in lesbaren Einheiten an, die auf Gigabyte basieren.

Problem: Der Befehl "du" stürzt ab oder gibt eine Fehlermeldung aus

Mögliche Ursache: Es befindet sich ein beschädigtes oder unlesbares Element im Verzeichnis. Lösung: Überprüfe das Verzeichnis manuell auf beschädigte Dateien oder beschränke den Befehl "du" auf ein bestimmtes Element (z. B. du /home/benutzer/verzeichnis). Du kannst auch versuchen, den Daemon "duply" zu verwenden, der eine inkrementelle, deduplizierte Sicherung erstellt, die Fehler beim Ermitteln der Verzeichnisgröße vermeiden kann.

Folge uns

Neue Posts

Beliebte Posts