Große Dateien finden unter Linux
Da ich oft unter Platzmangel auf meiner Platte leide wollte ich mal alle “großen” Dateien finden und gegebenenfalls löschen.
Der Befehl
ls -lahS $(find / -type f -size +100000k)
findet alle Dateien die größer sind als 100MByte und listet sie der Größe nach auf.
Dabei sorgt der Befehl ls -lahS für das Auflisten der Dateien. Die Dateien werden mit l im langen Format ausgegeben.
Der Parameter a zeigt alle Dateien, auch die versteckten. Dank h erscheinen alle Größenangaben in gut lesbarem Format.
AdsSpy: 2 sites by this AdSense ID
Mit $ wird das Ergebnis des nachfolgenden Befehls als Parameter an ls übergeben. Sprich, es erscheinen nur Dateien, die größer sind als 100.000 Kilobyte.
Hinweis: Wenn Sie den Befehl nicht als root ausführen, werden Sie einige Male Permission denied zu lesen bekommen.



Kommentare (2)
1
Stefan Blechschmidt
schrieb am 16. Dezember 2009 um 11:07 Uhr:
Nicht schlecht der Befehl aber birgt noch einige Probleme.
Mit dem /proc/ Verzeichnis hat find seine Probleme hier ist eine Umleitung des Fehlerkanals sicher sinnvoll.
Wenn find Namen mit Leerzeichen findet übergibt er 2 Parameter an ls und dann kann ls nichts mehr damit anfangen. „No such file or directory“
Besser wäre es den in find eingebauten Prozess -exec zu verwenden. Zwar geht dann die Sortierung verloren, weil find für jeden Fund einen ls Prozess startet, aber diese kannst du dir dann mit sort wieder einbauen.
find / -type f -size +100000k -exec ls -lah {} \; 2>/dev/null | sort -r -k5Und wenn man ehrlich ist braucht man die Ausgabe der Rechte und des Benutzers auch nicht. Also würde ich den Befehl am Ende so schreiben
find / -type f -size +100000k -exec ls -sah {} \; 2>/dev/null | sort -r -k1Gruß stefan
2
Hammer Man
schrieb am 8. Juni 2010 um 13:11 Uhr:
du -sk * | sort -k 1n,1
so einfach ist das
Schreiben Sie einen Kommentar zum Artikel