Harting Development

Ordnergröße in Linux anzeigen: So ermitteln Sie den Speicherplatzverbrauch effizient

Lukas Fuchs vor 7 Monaten in  Performance-Optimierung 3 Minuten Lesedauer

Befehl zum Anzeigen der Ordnergröße

Um die Größe eines Ordners in Linux anzuzeigen, verwendest du den Befehl du (Disk Usage). Dieser Befehl bietet dir detaillierte Informationen über den Speicherplatzverbrauch eines Ordners und seiner Unterverzeichnisse.

Syntax

du [Optionen] [Verzeichnis]

Optionen

Option Beschreibung
-a Zeigt die Größe aller Dateien und Verzeichnisse an, auch versteckter
-b Zeigt die Größe in Bytes an (Standard)
-c Zeigt eine Zusammenfassung der Gesamtgröße aller aufgeführten Verzeichnisse an
-h Zeigt die Größe in menschlich lesbaren Einheiten (z. B. KB, MB, GB) an
-s Zeigt nur die Gesamtgröße des angegebenen Verzeichnisses an
--max-depth=N Begrenzt die Rekursion auf die angegebene Tiefe
--time Zeigt den Zeitstempel der letzten Änderung für jedes Verzeichnis an

Beispiel

Um die Größe des Ordners /home/benutzer anzuzeigen, gibst du folgenden Befehl ein:

du -h /home/benutzer

Dies gibt eine Ausgabe aus, die die Größe in menschlich lesbaren Einheiten anzeigt, z. B.:

256 KB    /home/benutzer/Dokumente
112 MB    /home/benutzer/Downloads

Optionen zum Anpassen der Ausgabe

Passe die Ausgabe des du-Befehls an, um spezifische Informationen zu erhalten und die Lesbarkeit zu verbessern.

Dateitypen anzeigen (-t)

Mit der Option -t kannst du die Menge des von verschiedenen Dateitypen belegten Speicherplatzes anzeigen. Dies ist nützlich, um große Mediendateien oder Archive zu identifizieren, die viel Speicherplatz verbrauchen.

$ du -t /home/benutzer/Dokumente

Ausgabe in menschlichen Formaten (-h)

Die Standardausgabe des du-Befehls zeigt die Ordnergrößen in Bytes an. Wenn du die Größen in menschlich lesbaren Formaten wie Kilobyte (KB), Megabyte (MB) und Gigabyte (GB) anzeigen möchtest, verwende die Option -h.

$ du -h /home/benutzer/Downloads

Zusammenfassende Ausgabe (-s)

Um nur die Gesamtgröße eines Verzeichnisses anzuzeigen, verwende die Option -s. Dies ist nützlich, um schnell den Speicherplatzverbrauch mehrerer Verzeichnisse zu ermitteln.

$ du -s /home/benutzer/*

Summen für Unterverzeichnisse (-d)

Wenn du die Größen sowohl für Verzeichnisse als auch für ihre Unterverzeichnisse anzeigen möchtest, verwende die Option -d. Dies kann nützlich sein, um Verzeichnisse zu identifizieren, die besonders viel Speicherplatz unterhalb einer bestimmten Ebene belegen.

$ du -d -h /home/benutzer/Projekte

Tiefe der Rekursion angeben (-D)

Standardmäßig führt du eine unbegrenzte Rekursion durch, was bedeutet, dass es alle Unterverzeichnisse durchsucht. Du kannst die Rekursionstiefe mit der Option -D angeben, um die Suche auf eine bestimmte Anzahl von Ebenen zu beschränken.

$ du -D 2 /home/benutzer/Videos

Rekursive Suche nach Ordnergrößen

Manchmal musst du möglicherweise den Speicherplatzverbrauch mehrerer Unterverzeichnisse bestimmen. Hier kommt die rekursive Suche ins Spiel.

-R-Option: Rekursive Auflistung

Die -R-Option (oder --recursive) veranlasst den du-Befehl, alle Unterverzeichnisse rekursiv zu durchsuchen und ihre Größen anzuzeigen. Dies gibt dir einen vollständigen Überblick über die Speicherplatznutzung des gesamten Verzeichnisbaums.

du -R /pfad/zum/verzeichnis

Vorteile der rekursiven Suche

  • Umfassende Übersicht: Sie erhältst Informationen zum Speicherplatzverbrauch aller Unterverzeichnisse auf einen Blick.
  • Problembereiche identifizieren: Sie kannst große Verzeichnisse schnell identifizieren, die viel Speicherplatz belegen.
  • Speicherplatzverwaltung: Sie kannst fundierte Entscheidungen über die Verwaltung und Optimierung des Speicherplatzes treffen.

Häufige Anwendungsfälle

  • Überprüfung des Festplattenspeicherplatzes: Verwende du -R / (als Root-Benutzer), um den Speicherplatzverbrauch auf dem gesamten System zu analysieren.
  • Aufräumen großer Verzeichnisse: Suche nach Verzeichnissen mit ungewöhnlich hohen Größen und entferne unnötige Dateien.
  • Speicherplatzverwaltung: Teile die Speicherressourcen effektiv zu, indem du weißt, welche Verzeichnisse die meiste Kapazität beanspruchen.

Tipps

  • Vorsicht bei großen Verzeichnissen: Die rekursive Suche kann bei großen Verzeichnissen zeitaufwändig sein.
  • Verwende find für mehr Kontrolle: Erwäge die Verwendung des find-Befehls zusammen mit dem du-Befehl für eine präzisere Größenberechnung.
  • Betrachte untergeordnete Verzeichnisse: Du kannst die -d-Option (oder --max-depth) verwenden, um die Suche auf eine bestimmte Verzeichnistiefe zu beschränken.

Ausschluss spezifischer Verzeichnisse

Um bestimmte Verzeichnisse von der Größenberechnung auszuschließen, verwendest du die -prune-Option. Dies ist besonders nützlich, wenn du große Verzeichnisse wie /tmp oder /var/log ausschließen möchtest.

Verwendung von -prune

Die Syntax zum Ausschluss von Verzeichnissen lautet:

find PATH -prune -o -print

Wobei:

  • PATH das Stammverzeichnis ist, das du durchsuchen möchtest.
  • -prune weist find an, das aktuelle Verzeichnis zu überspringen, wenn es mit dem angegebenen Muster übereinstimmt.
  • -o gibt an, dass die Operation fortgesetzt werden soll, wenn -prune fehlschlägt (d. h. das Verzeichnis nicht übersprungen wird).
  • -print weist find an, den Namen jedes Verzeichnisses und seine Größe auszugeben.

Muster zum Ausschluss angeben

Du kannst ein bestimmtes Verzeichnis oder eine Gruppe von Verzeichnissen anhand eines Musters ausschließen. Verwende dazu glob-Muster wie *, ? und [].

  • -prune -name "tmp": Schließt das Verzeichnis tmp aus.
  • -prune -name "logs*": Schließt alle Verzeichnisse aus, deren Namen mit logs beginnen.
  • -prune -name "[[:digit:]]*": Schließt alle Verzeichnisse aus, deren Namen nur aus Ziffern bestehen.

Ausschluss mehrerer Verzeichnisse

Du kannst mehrere Verzeichnisse ausschließen, indem du die -prune-Option mehrmals verwendest:

find PATH -prune -o -print -prune -o -name "logs*" -print

Diese Zeile schließt sowohl das Verzeichnis tmp als auch alle Verzeichnisse aus, deren Namen mit logs beginnen.

Tipps zur Fehlersuche

  • Stelle sicher, dass du das richtige glob-Muster für den Ausschluss verwendest.
  • Verwende die Option -ls zusammen mit find, um detailliertere Informationen über die Verzeichnisse zu erhalten, die ausgeschlossen werden.
  • Überprüfe die Berechtigungen des Verzeichnisses, das du ausschließen möchtest. Möglicherweise musst du Root-Berechtigungen haben, um es auszuschließen.

Sortierung und Formatierung der Ausgabe

Nachdem du die Ordnergröße ermittelt hast, kannst du die Ausgabe anpassen, um die Informationen übersichtlicher darzustellen.

Sortierung der Ausgabe

Du kannst die Ausgabe nach verschiedenen Kriterien sortieren, um die größten oder kleinsten Ordner leicht zu identifizieren. Verwende dazu die Option -S gefolgt vom Sortierkriterium:

du -S size

Sortiert die Ausgabe nach Ordnergröße (aufsteigend).

Weitere Sortieroptionen sind:

  • -S count: Sortierung nach Anzahl der Dateien
  • -S time: Sortierung nach Zugriffszeit

Formatierung der Ausgabe

Um die Ausgabe zu formatieren, kannst du die Option -c verwenden. Sie fügt eine Gesamtsumme für den Speicherplatzverbrauch aller aufgelisteten Ordner hinzu:

du -c

Weitere Formatierungsoptionen sind:

  • -B unit: Setzt die Einheit für die Größenangabe (z. B. -B M für Megabyte)
  • -h: Zeigt Größen in menschenlesbarem Format an (z. B. KB, MB, GB)

Zusammenfassen der Ausgabe

Um die Ausgabe zu komprimieren und nur eine Zeile pro Verzeichnis anzuzeigen, verwende die Option -s:

du -s

So bekommst du eine prägnante Zusammenfassung des Speicherplatzverbrauchs.

Verwendung von Befehlszeilen-Flags

Flags sind optionale Parameter, die du Befehlen übergeben kannst, um ihre Funktionalität anzupassen. Bei der Ermittlung der Ordnergröße in Linux kannst du eine Vielzahl von Flags verwenden.

Ausschluss bestimmter Verzeichnisse

Verwende das Flag --exclude gefolgt vom Pfad des Verzeichnisses, das du ausschließen möchtest. Dies kann nützlich sein, um Systemverzeichnisse oder große Datenmengen auszuschließen, die die Berechnung verzerren könnten.

du --exclude "/sys" /home

Rekursive Suche

Das Flag -r ermöglicht es dir, die Ordnergröße rekursiv zu ermitteln, d. h. auch die Größe aller Unterverzeichnisse zu berücksichtigen. Ohne dieses Flag wird nur die Größe des angegebenen Verzeichnisses selbst angezeigt.

du -r /home

Sortierung und Formatierung der Ausgabe

Verwende die Flags --sort und --format zum Anpassen der Ausgabe. Mit --sort kannst du die Ausgabe nach Größe, Name oder Datum sortieren, während --format die Ausgabeformatierung steuert.

du --sort=size /home | head -5
du --format=bytes /home

Befehlszeilen-Tools von Drittanbietern

Es stehen verschiedene Befehlszeilen-Tools von Drittanbietern zur Verfügung, die erweiterte Funktionen für die Bestimmung der Ordnergröße bieten.

Tipps

  • Verwende das Flag --help mit dem Befehl du, um eine Liste aller verfügbaren Flags und Optionen anzuzeigen.
  • Kombiniere mehrere Flags, um eine maßgeschneiderte Ausgabe zu erhalten.
  • Erwäge die Verwendung von Aliasen oder benutzerdefinierten Skripten, um häufig verwendete Befehle mit bestimmten Flags zu automatisieren.

Skripte zum Automatisieren der Ordnergrößenbestimmung

Die Verwendung von Skripten bietet einen bequemen Weg, die Ordnergrößenbestimmung zu automatisieren und sie in deine bestehenden Workflows zu integrieren. Du kannst Skripte erstellen, die bestimmte Ordner oder Verzeichnisse überwachen, regelmäßig Berichte erstellen oder Ordnergrößen für verschiedene Analysen oder Berichtszwecke berechnen.

Vorteile der Skriptautomatisierung

  • Regelmäßige Überwachung: Skripte können so konfiguriert werden, dass sie Ordnergrößen zu bestimmten Zeitintervallen überwachen und dich benachrichtigen, wenn Grenzwerte überschritten werden oder Änderungen auftreten.
  • Automatisierte Berichterstellung: Du kannst Skripte erstellen, die Berichte über Ordnergrößen in verschiedenen Formaten (z. B. CSV, HTML) generieren und diese Berichte an bestimmte E-Mail-Adressen oder Speicherorte senden.
  • Integrierte Analysen: Indem du Skripte mit Analysetools wie Python oder R kombinierst, kannst du Ordnergrößen in größere Analysen integrieren, z. B. die Ermittlung von Trends im Speicherplatzverbrauch oder die Identifizierung von Ausreißern.

Erstellen eigener Skripte

Zum Erstellen eigener Skripte kannst du eine Programmiersprache wie Bash, Python oder Perl verwenden. Hier ist ein einfaches Beispiel für ein Bash-Skript, das die Größe des aktuellen Verzeichnisses berechnet:

#!/bin/bash

# Berechne die Größe des aktuellen Verzeichnisses in Megabyte
size=$(du -sm | awk '{print $1}')

# Beispiel für eine Benachrichtigung per E-Mail, wenn die Größe 100 MB überschreitet
if [ $size -gt 100 ]; then
  echo "Die Größe des Verzeichnisses hat 100 MB überschritten!" | mail -s "Ordnergröße überschritten" [email protected]
fi

Verwendung von Tools von Drittanbietern

Zusätzlich zur Verwendung eigener Skripte stehen eine Reihe von Tools von Drittanbietern zur Verfügung, die die Ordnergrößenbestimmung automatisieren können. Einige beliebte Optionen sind:

  • Ncdu (NCurses Disk Usage): Ein interaktives ncurses-basiertes Tool, das eine hierarchische Ansicht des Speicherplatzverbrauchs bietet.
  • Du-Tree: Ein grafisches Tool, das die Ordnergrößen in einer Baumstruktur visualisiert.
  • CloudCompare (für Cloud-Dienste): Ein Dienst, der die Ordnergrößen in Cloud-Umgebungen überwacht und analysiert.

Tipps und Tricks

  • Optimiere deine Skripte: Verwende Flags und Optionen, um die Leistung deiner Skripte zu optimieren, z. B. die Option "-a" für "alle Dateien" oder "-h" für "menschlich lesbare" Größenformate.
  • Überwache regelmäßig: Da sich die Ordnergrößen im Laufe der Zeit ändern, ist eine regelmäßige Überwachung unerlässlich, um anhaltende Probleme zu erkennen.
  • Dokumentiere deine Skripte: Stelle sicher, dass deine Skripte gut dokumentiert sind, damit sie von anderen leicht verstanden und gewartet werden können.

Fortgeschrittene Techniken zur Größenberechnung

Neben den grundlegenden Befehlen zum Anzeigen der Ordnergröße stehen dir erweiterte Techniken zur Verfügung, mit denen du die Größenberechnung präzisieren und optimieren kannst.

Verborgene Dateien und Verzeichnisse einbeziehen

Standardmäßig schließen die Befehle du und ls versteckte Dateien und Verzeichnisse aus. Um sie einzubeziehen, verwende die Option -a:

du -a /Verzeichnis

Symbolische Links verfolgen

Symbolische Links können auf andere Dateien oder Verzeichnisse verweisen. Mit der Option -L kannst du symbolische Links verfolgen und deren Größe einbeziehen:

du -L /Verzeichnis

Dateisysteme erkennen

Wenn du die Größe eines Dateisystems ermitteln möchtest, verwende den Befehl df. Dieser Befehl zeigt Informationen zur belegten und freien Speicherkapazität an:

df -h /

Größe mehrerer Verzeichnisse gleichzeitig ermitteln

Um die Größe mehrerer Verzeichnisse gleichzeitig zu ermitteln, verwende den Befehl find zusammen mit der Option -size:

find /Verzeichnis1 /Verzeichnis2 -size +100M

Dieser Befehl listet alle Dateien und Verzeichnisse auf, deren Größe größer als 100 MB ist.

Moderne Tools für die Größenberechnung

Neben den traditionellen Befehlen gibt es auch moderne Tools, die erweiterte Funktionen zur Größenberechnung bieten.

  • ncdu (Ncurses Disk Usage): Ein interaktives Tool, das eine grafische Darstellung des Speicherplatzverbrauchs bietet.
  • duf (Disk Usage Formatter): Bietet eine Vielzahl von Formatierungsoptionen für die Ausgabe der Ordnergröße.
  • ripgrep (Recursive Incremental Pattern Grep): Ermöglicht dir, nach Dateien und Verzeichnissen zu suchen und dabei deren Größe zu berücksichtigen.

Fehlerbehebung und Tipps

Beim Ermitteln der Ordnergröße in Linux können Probleme auftreten. Hier sind einige Tipps zur Fehlerbehebung und Best Practices:

Zugriffsrechte

  • Vergewissere dich, dass du die Berechtigung hast, auf die Verzeichnisse zuzugreifen, deren Größe du ermitteln möchtest. Füge bei Bedarf Berechtigungen hinzu oder verwende den Befehl sudo, um den Befehl als Root auszuführen.

Nicht vorhandene Verzeichnisse

  • Stelle sicher, dass die angegebenen Verzeichnisse tatsächlich existieren. Wenn du ein nicht vorhandenes Verzeichnis angibst, gibt der Befehl möglicherweise einen Fehler aus oder liefert ungenaue Ergebnisse.

Große Verzeichnisse

  • Wenn du die Größe eines sehr großen Verzeichnisses ermittelst, kann der Befehl einige Zeit in Anspruch nehmen. Sei geduldig und vermeide es, den Befehl zu unterbrechen, da dies zu ungenauen Ergebnissen führen kann.

Häufige Fehlermeldungen

  • "Permission denied": Dies bedeutet, dass du nicht über die Berechtigung verfügst, auf das Verzeichnis zuzugreifen. Füge Berechtigungen hinzu oder verwende sudo.
  • "No such file or directory": Das angegebene Verzeichnis existiert nicht. Überprüfe den Pfad und stelle sicher, dass du das richtige Verzeichnis eingegeben hast.
  • "Argument list too long": Wenn du versuchst, viele Verzeichnisse auf einmal zu analysieren, kann der Befehl fehlschlagen. Teile die Befehlsausführung in mehrere kleinere Skripte auf.

Best Practices

  • Verwende den Befehl du -h oder df -h, um die Größen in einem lesbaren Format anzuzeigen.
  • Verwende die Option --summarize oder -s, um eine Zusammenfassung der Größen mehrerer Verzeichnisse anzuzeigen.
  • Verwende die Option --exclude, um bestimmte Verzeichnisse von der Größenbestimmung auszuschließen.
  • Nutze die Option --apparent-size, um die Gesamtgröße der Dateien zu ermitteln, ohne versteckte Dateien zu berücksichtigen.

Folge uns

Neue Posts

Beliebte Posts