Toolbox: Dateisuche mit Catfish

Für die Suche nach Dateien bietet Linux effektive Konsolenprogramme wie find und locate. Mit dem grafischen Frontend Catfish lassen sich deren Fähigkeiten bequem auch auf der grafischen Oberfläche nutzen.

In Pocket speichern vorlesen Druckansicht 8 Kommentare lesen
Lesezeit: 7 Min.
Von
  • David Wolski
Inhaltsverzeichnis

Catfish arbeitet als Frontend für die bewährten Konsolentools find und locate.

Catfish stattet den Desktop mit einer unkomplizierten Suchmaske aus, um Dateien anhand des Namens oder Pfads zu finden. Ausgewachsene Desktop-Suchmaschinen wie Recoll macht das in Python geschriebene Programm dabei keineswegs arbeitslos, denn Catfish kann weder die Metadaten heranziehen, noch eine Volltextsuche im Dateiinhalt durchführen. Die eigentliche Arbeit erledigen Kommandozeilen-Tools im Hintergrund, wobei Catfish die Suchmethoden von find, locate, aber auch von Tracker, Strigi, Doodle und dem exotischen Pinot nutzen kann.

Die wichtigsten Suchwerkzeuge für Catfish sind find und locate, zumal die GNU-Version des klassischen Unix-Tools find sowieso auf allen Linux-Systemen vorhanden ist. Ebenfalls Teil der GNU Findutils ist das Programm locate, das auf großen Dateisystemen ein schneller Ersatz für find ist, da es mit einem vorbereiteten Index arbeitet. Unter Debian, Ubuntu sowie Fedora ist locate im Paket „mlocate“ untergebracht, bei OpenSuse in „findutils-locate“. Damit locate etwas findet, muss zunächst die Datenbank mit root-Rechten oder mit vorangestelltem sudo mit dem Befehl updatedb aufgebaut werden.

Catfish (4 Bilder)

Dateiauswahl

Die Suche mit Catfish hat gegenüber den entsprechenden Konsolenbefehlen den Vorteil, dass man bequemen Zugriff auf die gefundenen Dateien hat.

Catfish bietet klare Vorteile gegenüber einer Suche in der Shell: die Präsentation der Suchergebnisse und das Zusammenspiel mit verknüpften Programmen zu den gefundenen Dateien. Das Fenster mit den Suchergebnissen dient gleichzeitig als Dateibrowser, so öffnet ein Doppelklick auf einen gefundenen Eintrag die Datei mit der verknüpften Standard-Anwendung der Desktop-Umgebung. Über den Eintrag „Springe zu“ im Kontextmenü zeigt der Dateimanager außerdem das Verzeichnis der Datei an.

In den Repositories von Debian, Ubuntu, Fedora, Arch und Gentoo steht Catfish zur Installation über den jeweiligen Paketmanager bereit. Auch OpenSuse-Nutzer müssen nicht darben, ein fertiges RPM ist über den Build Service zu finden. Die meisten Distributionen bieten Catfish noch in der bewährten Version 0.3.x an, die auf GTK+ 2 basiert. Eine aktuellere Version nutzt GTK+ 3 und bietet eine neue, reduzierte Oberfläche, die Optik und Bedienkomfort auf Kosten der Funktionalität in den Vordergrund rückt. Die meisten Anwender dürften mit dem bewährten Catfish 0.3.2 deshalb besser bedient sein.

Nach dem Start präsentiert Catfish in der älteren Version ein schlichtes, zweigeteiltes Programmfenster. Das Eingabefeld auf der linken Seite nimmt den Suchbegriff entgegen, bietet einige wenige Suchoptionen und erlaubt die Auswahl von Startverzeichnis und Suchmethode. Auf der rechten Seite zeigt Catfish nach einer Suche die gefundenen Dateien als Liste. Ein Doppelklick öffnet die jeweilige Datei mit der zugehörigen Anwendung, wenn für den MIME-Typ eine definiert ist. Per Rechtsklick und "Kopieren" lässt sich der Dateipfad in die Zwischenablage befördern, mit „Springe zu“ im eingerichteten Dateimanager öffnen, oder die ganze Liste mit „In Datei Speichern“ als Textdatei ablegen. Die voreingestellte Suchmethode ist find, der Startparameter „-method“ kann aber auch ein anderes Tool verwenden, beispielsweise locate:

catfish --method=locate

Abgemagert: Die neue Version von Catfish bietet weniger Optionen und zeigt ein verkleinertes Programmfenster zur Suche.

Ein anderes Bild zeigt Catfish ab Version 0.4.x, das in Ubuntu 12.10 bereits in den Paketquellen liegt. Hier startet der Aufruf von Catfish zunächst ein verkleinertes Programmfenster, das nur die Suchmaske anzeigt und sich erst nach erfolgtem Suchlauf vergrößert und die Ergebnisse auflistet. Die erste Suche führt Catfish stets mit locate aus und bietet anschließend die Möglichkeit, noch einen intensiven Suchlauf mit find zu starten. Die Suchoptionen zeigt ein Klick auf das Zahnrad-Symbol rechts in der Menüleiste. Eine manuelle Auswahl der Methode gibt es hier nicht mehr – ein Manko, zumal der Startparameter „--method“ in der vorliegenden Version aus den Ubuntu-Repositories keine Wirkung zeigt.

Standardmäßig ignoriert Catfish Groß- und Kleinschreibung bei Suchbegriffen und gibt alle passenden Dateinamen aus sowie Dateien, die in einem gleichnamigen Verzeichnis liegen. Um nach der exakten Schreibweise eines Namens zu suchen, dient die Option „Genaue Übereinstimmung“. Die Suche nach „catfish“ wird dann beispielsweise keine Fundstellen mit „Catfish“ im Namen liefern.

Reguläre Ausdrücke: Catfish kann mit den gleichen Suchmustern umgehen, die auch find und locate unterstützen.

Wie auf der Kommandozeile stehen auch im Suchfeld von Catfish reguläre Ausdrücke und Wildcards zur Verfügung, sodass sich nicht nur nach Namen, sondern auch nach Mustern suchen lässt. Dabei funktionieren in Catfish alle Ausdrücke, die auch in den GNU Findutils zu finden sind. Eine vollständige Dokumentation bietet www.gnu.org. Die Eingabe von catfi? sucht beispielsweise nach dem Teilbegriff „catfi“ und *.jpg sorgt dafür, dass das Programm alle JPG-Dateien mit entsprechender Dateiendung auflistet. Komplexe Muster stehen wie bei find auf der Kommandozeile über Operatoren zur Verfügung: Intervalle lassen sich mit eckigen Klammern definieren, etwa mit catfis[a-z].

Beim Umschalten der Suchmethode zu locate ändern sich auch die Suchoptionen: Zum Einen listet locate keine Verzeichnisinhalte auf, wenn der Verzeichnisname den Suchbegriff enthält, da nur der Dateiname verglichen wird. Zum anderen gibt es in diesem Modus die zusätzliche Suchoption „Volltextsuche“, bei der sich wiederum der Suchbegriff auf den gesamten Dateipfad ausdehnen lässt.

Ältere Version: Das ältere Catfish 0.3.2 lässt sich auch unter Ubuntu 12.10 mit wenig Aufwand kompilieren.

Catfish ab Version 0.4.0 mit GTK+ 3 sieht zwar schick aus, doch die ältere Version mit manueller Auswahl der Suchmethode ist einfach besser zu bedienen. Bisher bieten nur Ubuntu und seine Derivate das neue Catfish an. Aber auch hier lässt sich der Vorgänger verwenden, indem man Catfish 0.3.2 selbst kompiliert. Die eventuell über den Paketmanager bereits installierte, neuere Version von Catfish sollte dann entfernt werden. Die Voraussetzungen zum Kompilieren sind PyGtk2, Glade2 und python-xdg. Mit dem Befehl

sudo apt-get install libglade2-0 python-gtk2-dev python-xdg

sind die Abhängigkeiten schnell nachinstalliert. Der Quellcode von Catfish findet sich auf der Projekt-Webseite des Entwicklers. Interessant ist hier der zweite Download-Link, der zum TAR.GZ-Archiv von Catfish 0.3.2 führt. Anschließend wechselt man in der Shell ins entpackte Verzeichnis des Quellcodes, wo sich die gewünschte Version von Catfish dann mit dem Dreisatz

./configure
make
sudo make install

kompilieren und einrichten lässt.

Die Kombination aus grafischer Oberfläche und bewährten Kommandozeilentools erspart Desktop-Anwendern einige Mühe, die Suchergebnisse aus einem Terminal-Fenster in ein Programmfenster zu bringen. Deutlich nützlicher als die aktuelle Version von Catfish ist allerdings die ältere Version 0.3.2, die erfreulicherweise bei den meisten Distributionen noch in den Paketquellen liegt. Aber auch das Kompilieren ist kein großes Problem, da es sich bei Catfish um ein kompaktes Python-Tool mit wenigen Abhängigkeiten handelt.

Mit seinem überschaubaren Funktionsumfang ist Catfish das passende Programm für schlanke Linux-Desktops in der Gewichtsklasse eines Lxde, Xfce oder Openbox. Denn wer bereits einen ausgewachsenen Dateimanager wie Nautilus, Dolphin oder Krusader verwendet, dem steht eine Dateisuche bereits über deren Funktionsumfang zur Verfügung. Bei schmalen Dateimanagern wie Thunar oder Pcmanfm fehlt eine solche Suchfunktion, daher bietet sich Catfish als nützliche Ergänzung an. (lmd)