Weiter Zurück Inhaltsverzeichnis
Herauszufinden, wo der Platz verbraucht wird, ist der erste Schritt. Aber KDirStat unterstützt auch den zweiten Schritt: Die Problembehebung.
Nein, in diesem Abschnitt geht es nicht darum, wie man Festplatten beim Computerladen um die Ecke kauft. Vielmehr geht es darum, eine überfüllte Festplatte aufzuräumen - den verlorenen Plattenplatz wieder zugänglich zu machen.
In den allermeisten Fällen reicht die verfügbare Plattenkapazität völlig aus - wenn sie nur vernünftig benutzt würde. Aber typischerweise kümmert sich niemand um Plattenplatz, solange genug davon zur Verfügung steht. Oder doch zumindest ein bißchen. Niemand räumt sein Heimatverzeichnis auf, wenn er nicht dazu gezwungen ist - durch den Systemverwalter oder durch eine Meldung 'Festplatte voll' ('no space left on device').
Es gibt eine ganze Menge Routineaufgaben, um verlorenen Plattenplatz wiederzugewinnen. Und KDirStat unterstützt die gängigsten. Darum geht es in diesem Abschnitt.
KDirStat verfügt über einige vordefinierte Aufäumaktionen für gängige Situationen in typischen Unix-Umgebungen. Zusätzlich sind auch allgemeinere Werkzeuge wie 'KFM' eingebunden, die noch mehr Möglichkeiten bieten. Und natürlich eine schlichte Unix-Shell. Was könnte noch mehr Möglichkeiten bieten, als jedes Unix-Kommando in genau der Arbeitsumgebung aufrufen zu können, an die man am meisten gewöhnt ist - die Unix-Shell?
Diese Aufräumaktionen werden über das 'Aufräumen'-Menü aufgerufen. Sie betreffen jeweils den aktuellen (angewählten) Eintrag im Baumfenster.
Man kann sie auch per Rechtsklick über das Kontextmenü im Baum aufrufen.
Damit wird der aktuelle Eintrag in einem Fenster des KFM (des KDE Dateimanagers) geöffnet. Wenn ein Verzeichnis angewählt ist, wird im KFM-Fenster der Verzeichnisinhalt angezeigt. Wenn eine einfache Datei angewählt ist, versucht KFM, sie entsprechend der registrierten MIME-Typen zu öffnen - d.h. es wird ein Postscript-Viewer für '.ps'-Dateien gestartet u.s.w.
Diese Aufräumaktion verfügt über die meisten Möglichkeiten, ohne gleich auf Unix-Kommandozeilen zurückzugreifen. Hier stehen die Möglichkeiten von KFM komplett zur Verfügung.
Danach wird es meistens notwendig sein, das Verzeichnis neu einzulesen ('Ansicht' 'neu einlesen'). Dies geschieht hier nicht automatisch.
Hier wird ein Terminalfenster gestartet, und zwar gleich im Pfad des aktuellen Eintrags - d.h. es wird ein Verzeichniswechsel mit 'cd' zu diesem Pfad durchgeführt und dann 'kvt' gestartet (oder welches Terminalprogramm auch immer konfiguriert ist).
Wenn alle Stricke reißen (oder wenn es einfach effizienter ist, schnell einige Unix-Kommandos einzugeben), stehen damit alle Möglichkeiten des Betriebssystems zur Verfügung.
Wenn man in diesem Verzeichnis fertig ist, sollte das Terminalfenster wieder geschlossen werden. Es ist meistens effizienter, einfach aus KDirStat heraus ein neues in einem anderen Verzeichnis zu starten, als umständlich mit vielen 'cd's dorthin zu wechseln.
Wenn durch die Shell-Kommandos etwas geändert wurde, sollte auch hier das Verzeichnis neu eingelesen werden.
Damit wird ein gesamter Verzeichnisbaum komprimiert, d.h. es wird ein '.tgz'-Archiv daraus gemacht. Ein Verzeichnis '/work/kilroy/irgendwas' wird dadurch also zu einer Datei '/work/kilroy/irgendwas.tgz'; das Originalverzeichnis wird danach gelöscht.
Genau das muß man im Unix-Alltag so oft manuell durchführen, daß man sich wirklich fragen muß, warum eigentlich eine so offensichtliche Funktion sonst in keinem Programm zu finden ist - noch nicht einmal in KFM.
Das entstandene Archiv kann ganz einfach im Kontextmenü von KFM ausgepackt werden. Oder, noch besser, es muß eigentlich überhaupt nicht ausgepackt werden, wenn man nur auf einzelne Dateien darin zugreifen will: Man kann sich einfach in KFM hineinklicken.
Ein Hinweis allerdings: Ein ggf. bereits existierendes '.tgz'-Archiv mit dem gleichen Namen wird einfach überschrieben.
Nach dem Komprimieren wird das übergeordnete Verzeichnis automatisch neu eingelesen - es hat sich ja auf jeden Fall etwas geändert.
Damit wird in das angewählte Verzeichnis gewechselt und dort 'make clean' aufgerufen.
Wie oft haben Sie schon per FTP irgendetwas aus dem Internet geholt, compiliert, installiert und dann schlicht und einfach vergessen, daß die ganzen entstandenen Zwischendateien eigentlich nicht mehr gebraucht werden? Gerade die '.o'-Dateien und die ausführbaren Programme verbrauchen sehr viel Plattenplatz, sind aber eigentlich nicht mehr notwendig, wenn das Programm erst einmal mit 'make install' im System installiert ist. Das kann ganz einfach mit 'make clean' in diesem Verzeichnis behoben werden. Aber dazu braucht man nicht einmal mehr ein Shell-Fenster - das kann auch KDirStat.
Zu beachten ist dabei, daß sich dieses 'make clean' standardmäßig darauf verläßt, daß das Makefile dort sich selbständig um irgendwelche Unterverzeichnisse kümmert - d.h. 'make clean' wird nur ein einziges Mal ganz oben aufgerufen. Das entspricht gängigen Standards der meisten im Internet entstandenen Projekte (z.B. GNU, KDE, ..).
Das betreffende Verzeichnis wird danach automatisch neu eingelesen.
Damit werden Dateien gelöscht, die normalerweise niemand mehr braucht: Übriggebliebene Objects ('*.o'), Sicherungsdateien, wie sie manche Editoren hinterlassen ('* ', '*.bak', '*.auto') oder Coredumps ('core'). Auf den meisten Platten wimmelt es davon nur so.
Dieses Kommando steigt einen Verzeichnisbaum hierarchisch ab und löscht solche Dateien - und zwar endgültig, nicht in den Papierkorb.
Was genau 'überflüssige' Dateien sind, können Sie selbst entscheiden. Sie können und sollten das an Ihre Bedürfnisse anpassen, bevor sie diese Aufräumaktion das erste Mal benutzen.
Die gängigste Aufäumaktion - und wohl auch die gefährlichste - ist das Löschen von Objekten. KDirStat bietet dafür eine sichere Variante an: Die Objekte werden in den KDE-Papierkorb verschoben.
Richtig erkannt: Dadurch wird (zunächst) kein Plattenplatz frei. Aber diese Aktion kann mit einigen Mausklicks oder mit einem einfachen Tastendruck ('Strg'+ 'X') ausgelöst werden - ohne umständliche Bestätigungen.
Es schwirren ständig so viele Bestätigungsdialoge an einem vorbei, die dann mechanisch beantwortet werden, daß diesem Mechanismus nicht mehr zu vertrauen ist - das bringt einfach keinerlei Sicherheit mehr. Im Gegenteil. Wenn es zu viel von dieser Sorte gibt, klickt man einfach, ohne groß nachzudenken.
Der Ansatz von KDirStat ist hier etwas anders: Man wirft einfach eine Datei oder einen ganzen Verzeichnisbaum in den Papierkorb. Wenn man mit dem Aufräumen dann fertig ist, sollte man sich allerdings noch einmal den Inhalt des Papierkorbs ansehen, bevor man ihn ausleert. Und bei jeder Datei bzw. bei jedem Verzeichnis gut darüber nachdenken, ob man das auch wirklich loswerden will. Und wenn man dann ganz sicher ist, leert man den Papierkorb eben wirklich aus; dann wird auch der Plattenplatz frei.
Für ein besseres Antwortverhalten nimmt KDirStat bei jedem Eintrag, der in den Papierkorb geworfen wird, einfach an, daß das auch geklappt hat. Es wird einfach der intern verwaltete Baum entsprechend angepaßt, d.h. die gelöschten Objekte werden dort einfach entfernt. Wenn es allerdings einmal nicht klappen sollte, muß man den angezeigten Baum manuell aktualisieren. Das merkt man allerdings sehr schnell, wenn KFM einen Fehler beim Löschen meldet.
Die vordefinierten Aufräumaktionen können an die persönlichen Bedürfnisse angepaßt werden, und es können bis zu zehn benutzerdefinierte Aufräumkationen eingebunden werden. Dazu dient die Registerkarte 'Aufäumaktionen' im 'Einstellungen'-Dialog im Menü 'Datei'.
Hinweis: Nach dem Ändern von Einstellungen müssen sie noch mit 'Einstellungen speichern' im Menü 'Datei' gesichert werden, sonst gelten die Änderungen nur bis zum Programmende!
Zuerst wird aus der Liste auf der linken Seite die Aktion ausgewählt, die angepaßt werden soll. Die zugehörigen Werte werden dann in den Feldern auf der rechten Seite dargestellt. Wenn Felder rechts geändert wurden, gehen diese Änderungen nicht verloren, wenn von einer Aufräumkation zur nächsten umgeschaltet wird.
Mit 'OK' werden alle Änderungen übernommen und der 'Einstellungen'-Dialog geschlossen.
Mit 'Standardwerte' werden alle Werte in den Zustand zurückgesetzt, indem 'KDirStat' ausgeliefert wurde. Diese Aktion muß bestätigt werden.
Mit 'Übernehmen' werden Änderungen übernommen, aber der Dialog bleibt offen. Der Dialog ist nicht modal, d.h. es kann im Hauptfenster weitergearbeitet werden, solange er offen ist. Dadurch kann man einfach mit verschiedenen Einstellungen experimentieren.
Mit 'Abbrechen' werden die Änderungen (seit dem letzten 'OK' oder 'Anwenden') verworfen und der Dialog geschlossen.
Damit wird eine Aufräumaktion allgemein aktiviert oder desaktiviert. Bevor eine Aufräumkation in diesem Dialog geändert werden kann, muß sie aktiviert werden.
Hier wird ein möglichst sprechender Name für die Aufräumaktion vergeben, der dann im Menü 'Aufräumen' bzw. im Kontextmenü angezeigt wird. Mit dem Zeichen '&' wird ein Buchstabe als Tastaturkürzel für Menüs markiert.
Das ist das Kernstück des Ganzen. Hier wird die Unix-Kommandozeile eingegeben, die auszuführen ist. Dabei kann '%p' als Platzhalter für den ganzen Pfad des aktuellen Objekts verwendet werden oder '%n' als Platzhalter für den Datei- oder Verzeichnisnamen ohne Pfad.
Als aktuelles Verzeichnis wird dabei jeweils das Verzeichnis des aktuellen Objekts verwendet - es muß also nicht jeweils vorher noch 'cd' hier eingegeben werden.
Hinweis: Hier können auch mehrere Kommandos hintereinander angegeben werden - eben alles, was die Unix-Standardshell ('/bin/sh') unterstützt. Mit Strichpunkt oder '&&' werden Kommandos nacheinander ausgeführt.
Die Standardaktion 'Komprimieren' verwendet z.B. folgende Kommandozeile:
cd ..; tar czvf %n.tgz %n && rm -rf %n
Das bedeutet im Einzelnen:
'cd ..': Verzeichniswechsel eine Ebene nach oben.
';': Es folgt noch ein Kommando.
'tar czvf %n.tgz %n': Aus dem aktuellen Objekt (das hier immer ein Verzeichnis ist, s.u.) ein komprimiertes TAR-Archiv mit dem Namen des aktuellen Objekts (ohne Pfad) plus '.tgz' erzeugen.
'&&': Wenn das letzte Kommando geklappt hat, noch ein Kommando ausführen.
'rm -rf %n': Ohne Rückfragen das aktuelle Objekt rekursiv (d.h. den ganzen Verzeichnisbaum) löschen.
Wie man also sieht, gibt es keine ausdrückliche Bestätigung für den letzten gefährlichen Schritt (das Löschen) - und trotzdem ist es - aufgrund der Fähigkeiten der Unix-Shell - sehr sicher.
Die meisten Kommandos müssen nur ein einziges Mal aufgerufen werden, und zwar für das aktuell im Baum ausgewählte Objekt. Manchmal ist es aber einfacher, ein Kommando in jeder Verzeichnisebene ab dort auszuführen.
So wäre die Aktion 'überflüssige Dateien löschen' viel komplizierter ohne diese zusätzliche Möglichkeit: Dazu wäre ein komplizierter Aufruf von 'find ... -exec rm ...' notwendig anstatt eines schlichten 'rm'. Ansonsten (z.B. bei 'rm -R') würde nämlich die Shell die Wildcards im Kommando ('*.o', ...) nur auf der obersten Verzeichnisebene auswerten, und die meisten überflüssigen Dateien würden übrigbleiben.
Hier kann festgelegt werden, für welche Art von Objekten eine Aufräumaktion aufgerufen werden kann. Die Menüeinträge werden dann jeweils entsprechend aktiviert oder desaktiviert.
Hier kann festgelegt werden, ob und wie der Verzeichnisbaum nach einer Aufräumaktion neu engelesen werden soll:
Entweder die Aufräumaktion ändert sowieso nichts, was den Baum betrifft, oder es ist dem Anwender egal - z.B. um Rechenzeit zu sparen.
Die Aufräumaktion ändert das aktuelle Objekt oder eines unterhalb.
Die Aufräumaktion ändert etwas in der Ebene oberhalb des aktuellen Objekts oder unterhalb davon.
Die Aktion 'Komprimieren' ändert z.B. nicht nur das aktuelle Objekt (ein Verzeichnis), sondern auch die Ebene darüber: Dort werden Objekte gelöscht (das angewählte Verzeichnis selbst), gleichzeitig kommt aber ein Objekt dazu, nämlich das neu angelegte '.tgz'-Archiv. Es muß also wirklich die Ebene oberhalb neu eingelesen werden.
Für besseres Antwortverhalten kann man KDirStat einfach annehmen lassen, daß eine Aufräumaktion das aktuelle Objekt löschen wird. Damit entfällt ein zeitaufwendiges Neueinlesen des betreffenden Teilbaums - es wird der nur intern in KDirStat verwaltete Baum entsprechend angepaßt.
Wenn diese Annahme allerdings einmal nicht zutreffen sollte, z.B. weil beim Löschen ein Fehler aufgetreten ist, laufen der intern verwaltete Baum und der tatsächliche Verzeichnisbaum auf der Platte auseinander. In diesem Fall muß der Baum manuell neu eingelesen werden.
Weiter Zurück Inhaltsverzeichnis