Folgende Problemstellung: Es soll unter Linux eine nach Dateigröße sortierte Liste von Dateien ermittelt werden, die eine bestimmte Größe überschreiten.
find /srv -type f -size +50000k
Mit dem Find-Befehl wird eine Liste aller Dateien im Verzeichnis /srv und den darin enthaltenen Unterverzeichnissen ermittelt, die größer als 50000 Kb sind. Das Ergebnis ist noch nicht ganz zufriedenstellend, da nur die Dateien ausgegeben werden, nicht aber ihre Größe. Ebenfalls sind die Dateien noch nicht sortiert. Dies lässt sich erreichen, indem man das Ergebnis des Find-Befehls mithilfe des Befehls xargs mit dem ls Befehl kombiniert.
find /srv -type f -size +50000k| xargs ls -lahS
Jetzt erhält man die gewünschte Liste mit den Dateien im Verzeichnis /srv, die größer als 50000Kb sind – sortiert nach der Dateigröße.
Hallo,
vielen Dank für die find-Befehle. Der Befehl
find /srv -type f -size +50000k| xargs ls -lahS
funktioniert nur solange kein Leerzeichen im Dateinamen bzw. Pfad vorhanden ist. Andernfalls meldet der nachfolgende List-Befehl, dass dieser einige Dateien nicht finden kann.
VG, BigBen
Versuche mal den xargs-Anteil mit “ | xargs -I{} ls -lahS {}“ zu ersetzen.
Oder du nimmst einfach „du -h * | sort -hr“