Dateigrößen auflisten

Für das Aufspüren großer Datenmengen kann folgender Befehl benutzt werden:

du -hd1 | sort -h

Als Ausgabe bekommt man eine Liste der Unterverzeichnisse des aktuellen Verzeichnis und das Datenaufkommen in den jeweiligen Verzeichnissen, inklusive aller Unterverzeichnisse. Die Liste ist nach Größe sortiert.

Im Detail: der Befehl du (disc usage) gibt das Datenvolumen in den Unterverzeichnissen der ersten Ebene (-d1) im aktuellen Verzeichnis zurück und formatiert die Größenangaben in Byte, Kilobyte,… (-h). Per Pipe wird die Liste an sort -h übergeben, womit eine Sortierung nach Größe vorgenommen wird.

Anzahl der Dateien auflisten

Eine ähnliche Liste, wie für die Dateigrößen erhalten wir für das Aufspüren der Anzahl von Dateien mit folgendem Befehl:

find . -xdev -type f | cut -d "/" -f 1,2 | sort | uniq -c | sort -n

Die Ausgabe listet die Anzahl der Dateien, die in einem Verzeichniss, samt Unterverzeichnissen, enthalten sind sortiert nach der Anzahl auf.

Im Detail: der Befehl find findet alle Dateien (-type f) im aktuellen Verzeichnis und dessen Unterverzeichnissen die sich auf dem gleichen Datenträger befinden (-xdev) und gibt eine Liste aller Dateien mit voller Pfadangabe zurück. Diese Liste wird per Pipe an cut -d "/" -f 1,2 übergeben und alles ausser den ersten beideb Verzeichnissen abgetrennt, indem jeder Eintrag der Liste an “/” aufgetrennt wird und nur die ersten zwei Felder (-f 1,2) behalten werden. Diese Liste wird weitergeleitet und zunächst mit sort sortiert, anschließend mit uniq nach gleichen Einträgen durchsucht und diese gezählt (-c). Die resultierende Liste wird noch einmal nach der Anzahl der gefundenenen Einträge sortiert (-n).

Update

Ürsprünglich wurde für das Auflisten der Anzahl von Dateien untenstehender Befehl verwendet. Allerdings ist der Ausdruck gegenüber dem jetzigen etwa doppelt so langsam.

find -maxdepth 1 -xdev -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done | sort -k2 -n
20 December 2014 |