Größte Dateien in einem Verzeichnis finden

Posted on Thursday, 02 June 2016 in Linux

Ich musste heute auf einer meiner Partitionen Platz schaffen. Dazu bietet es sich natürlich an, sich den größten Dateien zu widmen. Doch wo liegen die Dateien, die am meisten Speicherplatz benötigen? Um das herauszufinden, reicht ein Terminal und ein paar Standard-Befehle, die mit jedem Linux oder UNIX-artigen System funktionieren sollten.

du

Um herauszufinden, wie viel Speicherplatz insgesamt von einem Verzeichnis belegt wird, genügt der Befehl

du -sh <Verzeichnis>

Die Option -s summiert die Größen und -h sorgt für eine "human-readable", also vom Menschen gut lesbare, Ausgabe.

Will man jedoch auch Dateien mit einbeziehen und eine Sortierung nach Größe, hilft das folgende Kommando:

du -ah <Verzeichnis> | sort -rh | head -n 10

Dabei gibt -a an, das alles, also auch einzelne Dateien, mit einbezogen werden sollen. Das Ganze wird dann in umgekehrter Reihenfolge sortiert (-r), wobei das -h angibt, dass der human-readable Output von du berücksichtigt wird. Zum Schluss werden in diesem Fall nur die 10 größten Einträge gelistet.

find

Ein bisschen genauer geht das Ganze mit find:

find <Verzeichnis> -type f -size +20M -exec ls -lh {} \; 2> /dev/null | awk '{ print $NF ": " $5 }' | sort -nrk 2,2

find wird zuerst das Verzeichnis übergeben, von dem aus rekursiv gesucht werden soll. Als nächstes folgen die Suchparameter, in diesem Fall soll nur nach Dateien, nicht nach Ordnern, gesucht werden (type file) mit einer Größe von mindestens 20MB. Da find Fehler ausgibt, wenn es auf Verzeichnisse stößt, die es nicht lesen darf, leiten wir diese mit 2> /dev/null ins digitale Nirvana. Auf die so gefundenen Dateien wird dann ls -lh angewendet, um unter anderem die genaue Größe zu erhalten. In der 5. Spalte steht die Größe, die mittels awk extrahiert wird. Zum Schluss wird die Ausgabe sortiert. Da die Größe jetzt nicht am Anfang steht, sondern in der 2. Spalte, wird zusätzlich -k 2,2 benötigt . Ausgegeben werden so alle Dateien unterhalb eines Verzeichnisses ab einer bestimmten Größe.