Vereinfachtes Auffinden großer Dateien unter Linux

Foto des Autors

By Jan

Befehle zum Auffinden großer Dateien in Linux

Wenn du große Dateien auf deinem Linux-System finden möchtest, stehen dir eine Reihe von Befehlen zur Verfügung. Welcher Befehl für dich am besten geeignet ist, hängt von deinen spezifischen Anforderungen und Vorlieben ab.

Der Befehl find

Der Befehl find ist ein vielseitiges Werkzeug, mit dem du Dateien und Verzeichnisse auf deinem System suchen und lokalisieren kannst. Um große Dateien zu finden, kannst du find zusammen mit dem Flag -size verwenden.

find / -size +10M

Dieser Befehl sucht nach allen Dateien im Stammverzeichnis (/), die größer als 10 MB sind. Du kannst den Größenparameter an deine Anforderungen anpassen, indem du andere Einheiten wie K (Kilobyte), G (Gigabyte) usw. verwendest.

Der Befehl du

Der Befehl du (Disk Usage) zeigt den Speicherplatzverbrauch von Dateien und Verzeichnissen an. Um große Dateien zu finden, kannst du du zusammen mit der Option -h (Human Readable) verwenden, um die Ausgabe in einem für Menschen lesbaren Format anzuzeigen.

du -h --max-depth=1 / | sort -rh

Dieser Befehl listet alle Dateien und Verzeichnisse im Stammverzeichnis auf und sortiert sie nach ihrer Größe absteigend.

Der Befehl lsof

Der Befehl lsof (List Open Files) listet Dateien auf, die derzeit von Prozessen verwendet werden. Dies kann nützlich sein, um große Dateien zu finden, die möglicherweise von aktiven Prozessen gesperrt sind.

lsof -F n | grep -vE "nproc|avahi-daemon|systemd" | sort -nr -k 7

Dieser Befehl listet alle geöffneten Dateien auf und sortiert sie nach ihrer Größe absteigend. Die Flags -vE und -F n werden verwendet, um irrelevante Einträge zu ignorieren.

Nächste Schritte

Nachdem du die Befehle zum Auffinden großer Dateien kennen gelernt hast, kannst du die folgenden Abschnitte lesen, um mehr darüber zu erfahren, wie du diese Befehle für bestimmte Suchvorgänge verwenden kannst, z. B. für die Suche nach Dateien mit einer bestimmten Größe, die Suche nach den größten Dateien in einem Verzeichnis und die Suche nach Dateien mit einem bestimmten Namen oder Muster.

Suchen nach Dateien mit einer bestimmten Größe

Wenn du nach Dateien suchst, die eine bestimmte Größe haben, steht dir eine Reihe von Befehlen zur Verfügung. Zu den gängigsten Optionen gehören:

find-Befehl

Der find-Befehl ermöglicht es dir, das Dateisystem nach Dateien zu durchsuchen, die bestimmte Kriterien erfüllen, einschließlich ihrer Größe. Um beispielsweise nach Dateien mit einer Größe von über 100 MB zu suchen, kannst du folgenden Befehl verwenden:

find / -size +100M

Hier durchsucht der Befehl das gesamte Dateisystem (/) nach Dateien, die größer als 100 MB sind.

du-Befehl

Der du-Befehl gibt die Festplattenspeichernutzung für Dateien und Verzeichnisse aus. Du kannst den Befehl du zusammen mit der Option -s verwenden, um die Gesamtgröße eines Verzeichnisses zu ermitteln. Um beispielsweise die Gesamtgröße aller Dateien im Verzeichnis /home/benutzer zu ermitteln, kannst du folgenden Befehl verwenden:

du -s /home/benutzer

ls-Befehl

Der ls-Befehl listet Dateien und Verzeichnisse im aktuellen Verzeichnis auf. Du kannst den Befehl ls zusammen mit der Option -l verwenden, um zusätzliche Informationen zu Dateien anzuzeigen, einschließlich ihrer Größe. Um beispielsweise eine Liste der Dateien im aktuellen Verzeichnis zusammen mit deren Größen anzuzeigen, kannst du folgenden Befehl verwenden:

ls -l

Suchen nach den größten Dateien in einem Verzeichnis

Wenn du die größten Dateien in einem bestimmten Verzeichnis ermitteln möchtest, gehe wie folgt vor:

Befehl du

Der Befehl du (Abkürzung für "Disk Usage") zeigt dir die Speicherplatznutzung für Dateien und Verzeichnisse an. Du kannst den Befehl du mit der Option -s (für "Zusammenfassung") verwenden, um die Gesamtgröße aller Dateien in einem Verzeichnis anzuzeigen:

du -s Verzeichnisname

Dies gibt dir die Gesamtgröße aller Dateien im Verzeichnis Verzeichnisname aus.

Befehl find

Der Befehl find kann verwendet werden, um Dateien nach verschiedenen Kriterien zu suchen, einschließlich der Dateigröße. Du kannst den Befehl find mit der Option -size verwenden, um nach Dateien einer bestimmten Größe zu suchen:

find Verzeichnisname -size + Größe

Dabei gibt Größe die Dateigröße in Blöcken an. Zum Beispiel sucht der folgende Befehl nach allen Dateien im Verzeichnis Verzeichnisname, die größer als 1 Megabyte (1024 Blöcke) sind:

find Verzeichnisname -size +1024k

Befehl ls

Der Befehl ls (Abkürzung für "Listen") kann verwendet werden, um Dateien und Verzeichnisse in einem Verzeichnis aufzulisten. Du kannst den Befehl ls mit der Option -S (für "Sortierung") verwenden, um die Dateien nach Größe zu sortieren:

ls -S Verzeichnisname

Dies listet alle Dateien im Verzeichnis Verzeichnisname auf, sortiert nach ihrer Größe. Die größten Dateien werden oben aufgeführt.

Rekursives Durchsuchen von Verzeichnissen nach großen Dateien

Suchrekursiv nach großen Dateien

Wenn du große Dateien in einem gesamten Verzeichnisbaum finden möchtest, kannst du den Befehl find verwenden. Dieser Befehl ermöglicht dir eine rekursive Suche, die alle Unterverzeichnisse durchläuft und nach Dateien sucht, die bestimmte Kriterien erfüllen.

Um nach großen Dateien rekursiv zu suchen, kannst du folgenden Befehl ausführen:

find /verzeichnis/pfad -size +100M

Dieser Befehl durchsucht alle Dateien im Verzeichnispfad /verzeichnis/pfad und seinen Unterverzeichnissen und gibt alle Dateien aus, die größer als 100 MB sind. Du kannst die Größe nach Bedarf anpassen.

Größe in einem für Menschen lesbaren Format anzeigen

Bei der Suche nach großen Dateien kann es hilfreich sein, die Größe in einem für Menschen lesbaren Format anzuzeigen. Dies kannst du mit der Option -h tun:

find /verzeichnis/pfad -size +100M -h

Diese Ausgabe zeigt die Dateigröße in Megabyte (MB), Gigabyte (GB) oder Terabyte (TB) an, je nachdem, welche Größe die Datei hat.

Sortieren der Ergebnisse nach Dateigröße

Um die Ergebnisse nach Dateigröße zu sortieren, kannst du die Option -sort verwenden:

find /verzeichnis/pfad -size +100M -h | sort -rh

Dieser Befehl sortiert die Ausgabe nach Größe in absteigender Reihenfolge, wobei die größten Dateien zuerst angezeigt werden.

Ignorieren von Dateien und Verzeichnissen

Wenn du bestimmte Dateien oder Verzeichnisse von der Suche ausschließen möchtest, kannst du die Option -prune verwenden. Beispielsweise kannst du folgende Dateien und Verzeichnisse ignorieren:

  • Alle versteckten Dateien und Verzeichnisse: find /verzeichnis/pfad -size +100M -prune -o -name ".*"
  • Alle Dateien mit der Erweiterung .txt: find /verzeichnis/pfad -size +100M -prune -o -name "*.txt"

Anzeigen von Dateigrößen in einem für Menschen lesbaren Format

Wenn du mit großen Dateigrößen arbeitest, kann es hilfreich sein, die Größen in einem für Menschen lesbaren Format anzuzeigen, anstatt in Bytes. Auf diese Weise kannst du leichter abschätzen, wie viel Speicherplatz einzelne Dateien beanspruchen und welche Dateien gelöscht oder komprimiert werden sollen.

Umwandeln von Bytes in lesbare Einheiten

Um Dateigrößen in lesbare Einheiten umzuwandeln, kannst du den Befehl -h (human readable) mit dem Befehl ls verwenden:

ls -lh

Dieser Befehl listet alle Dateien im aktuellen Verzeichnis auf und zeigt ihre Größen in Kilobytes (KB), Megabytes (MB) oder Gigabytes (GB) an.

Anzeigen der genauen Dateigröße

Wenn du die genaue Dateigröße in Bytes anzeigen möchtest, kannst du den Befehl -s (size) mit dem Befehl ls verwenden:

ls -s

Dieser Befehl listet alle Dateien im aktuellen Verzeichnis auf und zeigt ihre Größen in Bytes an.

Anzeigen der Größen mehrerer Dateien

Wenn du die Größen mehrerer Dateien in einem für Menschen lesbaren Format anzeigen möchtest, kannst du den Befehl du (disk usage) verwenden:

du -h

Dieser Befehl listet die Größe jedes Verzeichnisses und jeder Datei im aktuellen Verzeichnis auf. Du kannst auch die Option -s verwenden, um nur die Gesamtsumme anzuzeigen:

du -sh

Größen verschiedener Dateitypen anzeigen

Wenn du die Größen verschiedener Dateitypen im aktuellen Verzeichnis anzeigen möchtest, kannst du den Befehl find verwenden:

find . -type f -ls

Dieser Befehl listet alle regulären Dateien im aktuellen Verzeichnis auf und zeigt ihre Größen in einem für Menschen lesbaren Format an. Du kannst auch die Option -exec verwenden, um einen anderen Befehl für jede gefundene Datei auszuführen, z. B. um ihre Größe in Bytes anzuzeigen:

find . -type f -exec ls -lh {} \;

Sortieren der Ergebnisse nach Dateigröße

Nachdem du die großen Dateien gefunden hast, kann es hilfreich sein, sie nach Größe zu sortieren. Dies erleichtert dir das Auffinden der größten Dateien und das Treffen von Entscheidungen darüber, welche Dateien gelöscht oder verschoben werden sollen.

Verwendung des Befehls "sort"

Um die Ergebnisse nach Dateigröße zu sortieren, kannst du den Befehl sort verwenden. Die Syntax lautet:

sort [Optionen] dateinamen

Die folgenden Optionen sind nützlich:

  • -n: Sortiert die Ergebnisse numerisch nach Dateigröße.
  • -r: Kehrt die Sortierreihenfolge um (von groß nach klein).
  • -k: Sortiert nach einer bestimmten Spalte (in diesem Fall nach der Dateigröße).

Beispiel:

find /home -size +100M | sort -n -k1

Dieser Befehl sucht alle Dateien im Verzeichnis /home, die größer als 100 MB sind, und sortiert sie numerisch nach Größe.

Verwendung des Befehls "du"

Eine weitere Möglichkeit, die Ergebnisse nach Dateigröße zu sortieren, ist der Befehl du. Die Syntax lautet:

du [Optionen] dateinamen

Die folgenden Optionen sind nützlich:

  • -s: Gibt eine Zusammenfassung der Festplattennutzung für alle angegebenen Dateinamen aus.
  • -h: Zeigt die Größen in einem für Menschen lesbaren Format an (z. B. KB, MB, GB).

Beispiel:

du -s /home | sort -n -k1

Dieser Befehl gibt eine Zusammenfassung der Festplattennutzung für alle Dateien im Verzeichnis /home aus und sortiert sie numerisch nach Größe.

Suchen nach Dateien mit einem bestimmten Namen oder Muster

Neben der Suche nach Dateien anhand ihrer Größe kannst du auch nach Dateien suchen, die einem bestimmten Namen oder Muster entsprechen. Dies ist besonders nützlich, wenn du nach einer bestimmten Datei in einem großen System suchst.

Suche nach einem exakten Dateinamen

Um nach einer Datei mit einem exakten Dateinamen zu suchen, kannst du den Befehl find zusammen mit der Option -name verwenden. Beispielsweise würde der folgende Befehl nach einer Datei namens myfile.txt im aktuellen Verzeichnis suchen:

find . -name myfile.txt

Suche nach einem Muster im Dateinamen

Wenn du nach Dateien suchst, die einem bestimmten Muster im Dateinamen entsprechen, kannst du die Option -iname verwenden. Diese Option ignoriert Groß- und Kleinschreibung. Beispielsweise würde der folgende Befehl nach allen Dateien suchen, die mit "text" enden:

find . -iname *.txt

Suche nach einem regulären Ausdruck im Dateinamen

Für komplexere Suchvorgänge kannst du reguläre Ausdrücke mit der Option -regex verwenden. Reguläre Ausdrücke ermöglichen es dir, nach Mustern zu suchen, die sich nicht einfach mit Platzhaltern angeben lassen. Beispielsweise würde der folgende Befehl nach Dateien suchen, die mit einem Großbuchstaben beginnen:

find . -regex '[A-Z].*'

Fazit

Mit diesem Abschnitt hast du nun eine einfache Möglichkeit, Dateien auf deinem Linux-System nach ihrem Namen oder Muster zu suchen. So kannst du schnell die gewünschten Dateien finden, auch wenn du dich in einem großen Verzeichnisbaum befindest.

Ignorieren von Dateien und Verzeichnissen

Um das Auffinden großer Dateien zu verfeinern, kannst du bestimmte Dateien oder Verzeichnisse von der Suche ausschließen. Dies kann hilfreich sein, wenn du nur an Dateien bestimmter Typen oder aus bestimmten Verzeichnissen interessiert bist.

Ausschluss von Dateien anhand des Namens oder Musters

Verwende die Option -iname, um Dateien anhand ihres Namens auszuschließen. Beispielsweise kannst du so alle Dateien mit der Erweiterung .txt ignorieren:

find / -type f -size +100M -iname "*.txt" -prune

Du kannst auch Platzhalterzeichen wie * und ? verwenden, um eine breitere Palette von Dateien auszuschließen. Beispielsweise schließt der folgende Befehl alle Dateien mit Namen, die mit temp beginnen, aus:

find / -type f -size +100M -name "temp*" -prune

Ausschluss von Verzeichnissen

Ähnlich wie bei Dateien kannst du auch Verzeichnisse von der Suche ausschließen. Verwende dazu die Option -prune. Beispielsweise kannst du das Verzeichnis /home/benutzer/downloads ausschließen:

find / -type f -size +100M -path "/home/benutzer/downloads" -prune

Kombination von Ausschlüssen

Du kannst mehrere Ausschlüsse kombinieren, um deine Suche weiter zu verfeinern. Beispielsweise kannst du sowohl Dateien mit der Erweiterung .txt als auch das Verzeichnis /home/benutzer/downloads ausschließen:

find / -type f -size +100M -iname "*.txt" -prune -path "/home/benutzer/downloads" -prune

Durch das Ignorieren bestimmter Dateien und Verzeichnisse kannst du die Ergebnisse deiner Suche nach großen Dateien gezielter eingrenzen und nur die relevantesten Ergebnisse erhalten.

Verwenden regulärer Ausdrücke für erweiterte Suchvorgänge

Reguläre Ausdrücke (Regex) sind eine leistungsfähige Sprache, die du verwenden kannst, um komplexe Suchmuster zu erstellen. Dies ermöglicht dir eine präzisere Suche nach großen Dateien nach bestimmten Kriterien.

h3: Syntax regulärer Ausdrücke

Regex folgt einer spezifischen Syntax, die du verstehen musst, um effektive Suchmuster zu erstellen. Hier sind einige grundlegende Syntaxregeln:

  • Platzhalter: ‚.‘ (Punkt) steht für ein beliebiges Zeichen und ‚*‘ (Sternchen) steht für null oder mehrere Zeichen.
  • Charakterklassen: ‚[abc]‘ sucht nach Zeichen, die in den eckigen Klammern enthalten sind.
  • Quantifizierer: ‚{m,n}‘ sucht nach m bis n Instanzen des vorhergehenden Ausdrucks.

h3: Suchen nach Dateien mit bestimmten Mustern

Du kannst Regex verwenden, um nach Dateien mit einem bestimmten Muster im Namen zu suchen. Beispielsweise sucht der folgende Befehl nach Dateien mit dem Wort "Dokument" im Namen:

find / -iname "*.dokument*"

h3: Suchen nach versteckten Dateien

Um versteckte Dateien (.dotfiles) einzuschließen, verwende die Option -ls. Beispielsweise listet der folgende Befehl alle versteckten Dateien auf, die größer als 10 MB sind:

find / -size +10M -ls

h3: Ignorieren bestimmter Verzeichnisse

Mithilfe der Option -prune kannst du bestimmte Verzeichnisse von der Suche ausschließen. Beispielsweise kannst du /var/log ignorieren, indem du den folgenden Befehl ausführst:

find / -size +10M -prune -o -path /var/log -prune

h3: Beispiel für einen erweiterten Suchvorgang

Angenommen, du möchtest nach Dateien suchen, die größer als 50 MB sind, mit dem Wort "Bericht" im Namen und sich in einem Verzeichnis befinden, das mit "Daten" beginnt. Du kannst den folgenden Befehl verwenden:

find / -name '*Daten*' -size +50M -iname '*Bericht*'

Durch die Kombination der oben beschriebenen Techniken kannst du komplexe Suchvorgänge ausführen, um große Dateien unter Linux effektiv zu finden.

Schreibe einen Kommentar