Arbeit in der GUI

Die Fslint-Tools stellen für Spezialisten und erfahrene Linux-User eine echte Bereicherung dar: Sie erlauben das effektive, zielgenaue Bearbeiten von Dateisystemen, wenn auch auf einem abstrakten Level. Für weniger versierte Anwender entwickelte Padraig Brady eine Python-Oberfläche, die annähernd die gleichen Features bietet, diese aber auf übersichtliche Weise strukturiert und die Ergebnisse gut verständlich darstellt. Um mit dem Werkzeug im Systembereich arbeiten zu können, müssen Sie es mit Superuser-Privilegien einsetzen.

Abbildung 2: Übersichtlich: Die Oberfläche fslint-gui gliedert sich grob in drei Teile.

Abbildung 2 zeigt die Oberfläche kurz nach dem Start. Im oberen Bereich des Fensters (Suchpfad) wählen Sie die zu bearbeitenden Verzeichnisse aus. Hier dürfen auch eingehängte externe Dateisysteme enthalten sein, die Fslint ohne Unterschiede beim Bearbeiten berücksichtigt. Durch Anklicken der Auswahlbox Absteigend? am rechten Rand beziehen Sie auch die Unterverzeichnisse mit in die Bearbeitung ein. Da dies manchmal zu Situationen führt, wo auch unerwünschte Verzeichnisse ausgewählt werden, erlaubt Weitere Suchparameter, gezielt einzelne Verzeichnisse von der Bearbeitung auszuschließen, beispielsweise .wine/ im Home-Verzeichnis der Anwender.

Im darunterliegenden Bereich wählen Sie die gewünschte Aktion aus und erhalten die Liste mit den Ergebnissen, die der Button Finden erzeugt beziehungsweise aktualisiert. Beachten Sie dabei, dass der voreinstellte Platz oft nicht ausreicht, um alle relevanten Informationen anzuzeigen. Da Sie sowohl das Fenster vergrößern als auch die Spalten verkleinern können, sollte sich eine Lösung finden lassen.

Es folgt eine schmale Zeile, die nach der Ausgabe von Ergebnissen statistische Informationen dazu anzeigt. Im untersten Teil des Fensters gibt Fslint bei Bedarf (Fehler-)Meldungen aus, die durch die find*-Skripte oder die von Ihnen aufgerufenen Befehle erzeugt werden.

Die Tools

Die Verwendungszwecke der unter der Oberfläche zusammengefassten Tools sind relativ einfach zu verstehen, aber auch ein zweiter Blick auf die Details lohnt dennoch.

  • Duplikate sucht in den angegebenen Verzeichnissen nach Dateien identischen Inhalts, unabhängig vom Dateinamen.
  • Installierte Pakete funktioniert nur auf Debian-basierten Systemen und listet die installierten Pakete auf.
  • Ungültige Namen findet problematische Dateinamen.
  • Namenskonflikte zeigt ausführbare Dateien mit identischen Namen an.
  • Temporäre Dateien findet vermutlich als temporäre Zwischenspeicher angelegte Dateien, die den typischen Namensregeln (*~, #*#, *.bak, …) genügen.
  • Fehlerhafte Symlinks zeigt fehlerhafte symbolische Links an.
  • Fehlerhafte IDs identifiziert Dateien mit UIDs von nicht (mehr) vorhandenen Usern
  • Leere Verzeichnisse gibt Ordner ohne Inhalt aus.
  • Ungestrippte Programme liefert eine Liste von Programmen und Bibliotheken, die nicht von unnötigem Debug-Code bereinigt wurden. Normalerweise können Sie das durch strip Datei korrigieren.
  • Redundante Leerzeichen identifiziert Dateien, die mehrfache Leerzeichen enthalten – dazu später mehr.

Das Ermitteln von Dateidubletten gehört mit zu den ersten Features, über die Fslint verfügte, und zeigt sich entsprechend weit entwickelt. Das Tool verwendet einen Algorithmus, der zunächst Dateien gleicher Länge identifiziert. Dann sortiert es diejenigen davon aus, die über Hardlinks miteinander verknüpft sind. Zu guter Letzt vergleicht es die übrig gebliebenen Dateien mittels mehrerer Checksummen.

Wie Sie mit den ermittelten Dateien umgehen wollen, legen Sie in zwei Stufen fest: Zum einen können Sie mit dem Kontextmenü für einzelne oder zuvor ausgewählte Dateien bestimmte Aktionen vornehmen. Meist werden Sie aber die zweite Möglichkeit verwenden, die Schalter unterhalb des Ergebnisfensters. Auswählen erlaubt dort das Vormerken von Dateien auf unterschiedliche Weisen. Über Speichern legen Sie die Ergebnisliste in Dateiform ab, mit Delete löschen Sie die ausgewählten Files.

Zusammenfügen führt die gefundenen Dateien zusammen, ersetzt die Duplikate also durch harte Links. Hier gibt es eine Stolperfalle: Diese Aktion bezieht sich, anders als alle sonstigen Aktionen in Fslint, nicht auf die ausgewählten Dateien, sondern auf alle anderen, nicht ausgewählten. Das entsprechende Dialogfenster macht diesen Sachverhalt zwar noch einmal unzweideutig klar (Abbildung 3), lässt sich aber leicht übersehen.

Abbildung 3: Alles umgekehrt: Beim Zusammenführen von Dateien bleiben die ausgewählten Files unbearbeitet.

Identische Programmnamen können zu großen Problemen führen, wenn dem Anwender nicht zweifelsfrei klar ist, welches Programm er wann verwendet. Typischerweise entstehen entsprechende Situationen durch die Installation neuer, alter oder abweichender Programmversion beispielsweise unter /usr/local/bin/. In einem solchen Fall entscheidet die Konstruktion des Systempfads $PATH, welche Version Verwendung findet (Abbildung 4).

Abbildung 4: Wie Fslint hier zutage fördert, existieren von einigen Programmen mehrere Versionen auf dem Rechner. Dass sogar eine Bash mit dabei ist, sollte dem Admin zu denken geben.

Beachten Sie hierbei: Unter Durchsuche () legen Sie fest, wie und wo Fslint nach den Namenskonflikten sucht. Die unter dem Schalter Konflikt-verursachende Dateien angebotenen Varianten ändern sich, sobald Sie das Häkchen entfernen. Dann lassen sich auch andere Konflikte aufspüren, wie beispielsweise unterschiedliche Schreibweisen (veränderte Groß/Kleinschreibung) oder Konflikte mit Alias-Definitionen.

Was Fslint beim Test auf Ungültige Namen auflistet, legen Sie an zwei Stellen fest: Der Schieberegler Empfindlichkeit über dem Ergebnisfenster stellt in vier Schritten die Genauigkeit ein, mit der der Test die Probleme erkennt; hohe Werte führen zu mehr Ergebnissen. Zusätzlich können Sie sich spezielle, durch UTF-8 verursachte Probleme über den Schalter Ungültiger UTF8-Modus? darstellen lassen. Beide Modifikationen bedingen einen separaten Find-Lauf. In vielen Fällen – insbesondere beim Übertragen von Dateien zwischen mehreren Rechnern mit unterschiedlichen Betriebssystemen – sollten Sie beide Funktionen nutzen, um die immer noch bestehenden Unterschiede zu minimieren und Unverträglichkeiten auszuräumen.

Ungültige Namen

Fslint verwendet das Skript findnl, um problematische Dateinamen zu finden. Es kennt die Optionen -1 bis -3, die im Wesentlichen unterschiedlich lange Pfad- und Dateinamen erlauben, sowie den Schalter -p, der auf POSIX-Kompatibilität achtet. Weiterhin schränkt eine höhere Empfindlichkeit auch die in den Dateinamen zulässigen Zeichen immer weiter ein. Zunächst berücksichtigt das Skript nur spezielle Zeichen (Leerzeichen, @, …) am Anfang und Ende der Namen, dann die auf der Shell zu maskierenden Zeichen wie ?, *, $ und #, schließlich auch mehrfache Punkte in den Namen (*.*.*) und anderes mehr. Das Skript setzt die Regeln sehr übersichtlich in gerade einmal 160 Zeilen Code – ein Blick darauf lohnt sich. Auch die Prüfung auf UTF8-Kompatibilität löst Fslint über Skripte; hier kommt neben findu8 auch supprt/fslver zum Einsatz.

Temporäre Dateien ermittelt Fslint mithilfe des Skripts findtf. Es verfügt über zwei wichtige Optionen, die Sie auch beide in der grafischen Oberfläche finden: -c ("core mode") findet Core-Files, --age=Tage gibt nur Dateien aus, die schon älter sind, als im Schwellwert angegeben (voreinstellt: null). Falls Ihnen hier noch Namensmuster für auf Ihrem System typische temporäre Dateien fehlen, ergänzen Sie diese einfach im Skript in der Variablen tmpFiles (Listing 4). Muster ('*.del') geben Sie hier mit dem Joker in einfachen Hochkommas an, feste Dateinamen direkt (delme).

Listing 4

[...]
tmpFiles="'*.del' delme core dead.letter '*~' ',*' '*.v' tmp junk '\#*' \
'.emacs_[0-9]*' '*.[Bb][Aa][Kk]' '*.swp' '*.pure'"
[...]

Fehlerhafte Symlinks identifiziert das Script findbl, das neben "dangling links" (-d, voreinstellt) durch Optionen gesteuert folgende Probleme erkennt: * -d: alle hängenden, also ins Leere führende Links (Hängend) * -s: absolute Links zu Pfaden unterhalb des aktuellen Verzeichnisses (Verdächtig) * -l: alle relativen Links (Relativ) * -a: alle absoluten Links (Absolut) * -n: alle redundanten Links (/././., /////, /../, …)

Als Treffer für Fehlerhafte IDs wirft Fslint alle Dateien aus, deren Eigentümer oder Gruppe nicht im System bekannt beziehungsweise nicht mehr vorhanden sind – die Eigentümer fehlen also in /etc/passwd, die Gruppen in /etc/group. Das sollte nicht auftreten und weist auf Probleme bei der Installation oder beim Übertragen von Dateien aus anderen Systemen hin.

Die Prüfung auf Redundante Leerzeichen untersucht nicht etwa die Dateinamen, sondern die Inhalte von Textdateien. Bei automatisch erzeugten Dateien (etwa *.aux- oder .log-Files), aber auch durch Schreibfehler entstehen manchmal Zeilen, in denen mehrere Leerzeichen unmittelbar hintereinander auftreten. Viele Programme insbesondere zum Auswerten von Protokollen können damit nur bedingt umgehen, weshalb Sie die Inhalte dieser Dateien "reparieren" sollten.

Dazu versteht das fragliche Fslint-Skript drei Optionen: -c ("count") zählt die problematischen Zeilen, -w ("whitespace") findet Leerzeichen am Zeilenende, und -t ("tabs") meldet das gemischte Auftreten von Tabulatoren und Leerzeichen. Der Schalter --view zeigt problematische Textstellen in Vi an, wofür der Editor installiert sein muss – er zählt aber bei fast allen gängigen Distributionen zum Standard-Installationsumfang.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Hausputz
    Dateisysteme neigen im Laufe der Zeit zu Inkonsistenzen – da macht auch Linux keine Ausnahme. Doch mit Fslint halten Sie Ihr System stets taufrisch.
  • Gnomogramm
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Fernstudium Informatik
Joe Cole, 12.12.2017 10:36, 1 Antworten
Hallo! habe früher als ich 13 Jahre angefangen mit HTML und später Java zu programmieren. Weit...
Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 3 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...
Tinte sparen bei neuem Drucker
Lars Schmitt, 30.11.2017 17:43, 2 Antworten
Hi Leute, ich habe mir Anfang diesen Monats einen Tintenstrahldrucker angeschafft, der auch su...