Shell-Skript, um die Dateigröße in einem Ordner rekursiv zu ermitteln

Kann mir jemand ein Shell-Skript zur Verfügung stellen, das ich für verschiedene Ordner ausführen kann, um zu sehen, wo große Dateien lauern?

Vielen Dank

Antworten (4)

find . -exec du -h {}\;

ist rekursiv und zeigt die Größe in menschenlesbarer Form an.

Oder wenn Sie fish oder zsh verwenden:

du -h ./**/*
Danke an alle. +1 für beide. Ich werde Max's als richtig markieren, da ich am Ende "du -h > Dateigrößen" verwendet habe.
Jetzt kann ich mit der Datei in Numbers herumspielen (Kopieren und Einfügen), nach Dateigröße sortieren usw.
bash 4.0 und höher unterstützen auch **with shopt -s globstar, und in bash können Sie einfach **anstelle von verwenden **/*.
Wie bestelle ich am besten nach Größe desc?
du | sort -nr

Du kannst einfach laufen

du -sm * 

um die Größe aller Ordner im aktuellen Verzeichnis anzuzeigen.

Oder installieren Sie alternativ die Freeware Disk Inventory X. Zeigt Ihnen die größten Dateien auf Ihrer Festplatte oder insbesondere Verzeichnisse mit einer lustigen visuellen Oberfläche. Und Sie können Elemente direkt von dieser Benutzeroberfläche aus in den Papierkorb verschieben.

Willkommen auf der Seite. Der Fragesteller sucht nach einer Shell-Skript-Lösung, ich glaube nicht, dass Disk Inventory X skriptfähig ist.
Ich schätze die Alternative :) +1

Sie können auch verwenden tree --du -h .. --duberechnet die Größe des Inhalts von Verzeichnissen (wie du) und -hverwendet für Menschen lesbare Dateigrößen.

Oder wenn Sie nur die Größe des Inhalts von Verzeichnissen sehen möchten, verwenden Sie einfach duoder du -h. Sie können verwenden gsort -h, um die Ausgabe von zu sortieren du -h.

treeSie können und gsortmit installieren brew install tree sortutils.

Wird treestandardmäßig installiert?