Nützliches, wenn die Platte voll ist...
Soll ja schonmal vorkommen, das das kleine System mal seine Platte voll gemacht hat. Dann sollte man sich auf die Suche machen, wo die großen Dateien liegen.
Methode 1: „find ist dein Freund.“
Zeige alle Dateien größer, gleich 100 Megabyte.
find /start/verzeichnis -size +100M -ls
Methode 2: „du it.“
Das Kommando du - für Disk Usage - Es zeigt die Größe, die Verzeichnisse mit den darin enthaltenen Verzeichnissen und Dateien einnehmen:
du /start/verzeichnis
Das Ergebnis ist noch nicht so lesbar. Es zeigt die Anzahl Bytes an:
[...] 84772 /home/klaus/Bilder/2015-05-05 601832 /home/klaus/Bilder/2015-05-12 32828 /home/klaus/Bilder/2015-05-22 21176 /home/klaus/Bilder/Projekt 372 /home/klaus/Bilder/Webcam 2276 /home/klaus/Bilder/2015-08-09 8750516 /home/klaus/Bilder/
Nehmen wir noch die Option "-h" (human readable) dazu:
du -h /start/verzeichnis
Aha, schon besser…
[...] 83M /home/klaus/Bilder/2015-05-05 588M /home/klaus/Bilder/2015-05-12 33M /home/klaus/Bilder/2015-05-22 21M /home/klaus/Bilder/Projekt 372K /home/klaus/Bilder/Webcam 2,3M /home/klaus/Bilder/2015-08-09 8,4G /home/klaus/Bilder/
Und? Wo ist das größte Verzeichnis und die größte Datei? Nicht so einfach bei 100 Zeilen.. aber damit gehts:
du -h /start/verzeichnis | sort -h
Aha, wunderbar. Da haben wir ja die Übeltäter.
[...] 17M /home/klaus/Bilder/2015-09-24 21M /home/klaus/Bilder/2015-11-02 21M /home/klaus/Bilder/Projekt 33M /home/klaus/Bilder/2015-05-22 40M /home/klaus/Bilder/2015-10-30 83M /home/klaus/Bilder/2015-05-05 248M /home/klaus/Bilder/2015-09-17 329M /home/klaus/Bilder/2015-07-12 588M /home/klaus/Bilder/2015-05-12 8,4G /home/klaus/Bilder/
Das Kommando sort
sortiert Zeilen nach einstellbaren Kriterien. Hier mit der Option -h
sortiert es auf human readable Größen. Heißt es beachtet die Größenordnngen M, G, T etc. - 1G ist mehr als 100M. Sort kann noch viel mehr. Wenn man es umgekehrt sortiert haben möchte, fügt man die Option „-r“ für reverse ein. Man kann das Feld angeben, nach dem sortiert wird. Alles erklärt in der man Page.
Sagen wir nun, wir möchten nur die Top 5 in der Ausgabe haben.. Dann machen wir einfach noch ein tail
dazu..
du -h /start/verzeichnis | sort -h | tail -5''
Ergebnis - nur die letzten 5 Zeilen der Ausgabe erscheinen:
83M /home/klaus/Bilder/2015-05-05 248M /home/klaus/Bilder/2015-09-17 329M /home/klaus/Bilder/2015-07-12 588M /home/klaus/Bilder/2015-05-12 8,4G /home/klaus/Bilder/
tail
ist die Universalschere für das Ende eines Textstroms. Man gibt als Option an, wieviele Zeilen Ausgabe vom Ende noch herauskommen sollen. Die Option -100 gibt z.B. bis zu 100 Zeilen aus. Das ist immer mal nützlich wo man nicht weiß wieviel da ansonsten kommt.
Und nun ein Beispiel, wie man einfache Dinge kompliziert machen kann. Wir möchten das Startverzeichnis nicht in der Ausgabe haben. Könnte man auf die Idee kommen es so zu machen: „Erst schneiden wir die letzen 6 Zeilen aus und dann nehmen wir davon die obersten 5 Zeilen.“
du -h /start/verzeichnis | sort -h | tail -6 | head -5
Das Kommando ''head'' ist sozusagen das Gegenteil zu ''tail''. Man kann wie oben vorgehen um bestimmte Bereiche einer Textdatei in die Ausgabe zu bekommen. Ist aber unschön. ''head'' funktioniert genau wie ''tail''. Also mit der Anzahl Zeilen als Option, nur dieses Mal von Oben gezählt. Eine Option ''-f'' gibt es allerdings nicht bei ''head''. Dateien werden in der Regel nach Unten verlängert, nicht nach Oben. \\ Also die Kombi ''tail'' +''head'' geht, aber… vielleicht wäre etwas anderes besser… Denn man erinnert sich nach 3 Monaten wohl möglich nur noch ungefähr dran, was das sollte. Und die jetzige Liste bezieht nicht die Dateien ein, die im Startverzeichnis selbst liegen. Die wurden nur dem Startverzeichnis hinzugezählt. \\ Also vielleicht besser so:
du -h /start/verzeichnis/* | sort -h | tail -5
Man beachte das *
hinter dem Verzeichnis. Der letzte Schrägstrich vor dem *
ist dabei wichtig. Dies weist die Unix Shell an alle Dateien und Verzeichnisse unter dem Startverzeichnis an das Kommando du zu übergeben. Das Kommando sieht die Optionen also so:
du -h /start/verzeichnis/unterverzeichnis1 /start/verzeichnis/verzeichnis2 /start/verzeichnis/dateiA
Und so geht das weiter. du
zählt dann für jedes dieser Einzelverzeichnisse die Größe.
Und Tataa, da verbergen sich doch tatsächlich die größten Dateien - doppelt und dreifach so groß wie das größte Verzeichnis:
329M /home/klaus/Bilder/2015-07-12 588M /home/klaus/Bilder/2015-05-12 1,1G /home/klaus/Bilder/IMGP1796.MOV 1,4G /home/klaus/Bilder/FlugMitHeartlakeAirlines.MOV 1,4G /home/klaus/Bilder/Petriheil.MOV
Apropos: das Kommando du
zeigt rekursiv die Größe aller Verzeichnisse an. Wenn man nur die oberste Ebene sehen möchte ist die Option -s
(summary) nützlich (man kann die Optionen anreihen, so lange sie keinen zweiten Parameter erfordern):
du -sh /start/verzeichnis/* | sort -h | tail -5