Weiß man unter Linux am Terminal nicht genau, wonach man sucht, nutzt man normalerweise den Befehl:

find

mit allen seinen Optionen, regulären Ausdrücken und Schaltern – sucht also etwa nach Dateien oder Verzeichnissen. Mit Fuzzy Finder nutzen Sie eine sogenannte unscharfe Suche und dies ganz interaktiv. Neben Verzeichnissen und Dateien lassen sich auch ein Befehlsverlauf, Prozesse, Hostnamen (etwa für SSH), Lesezeichen und GitHub-Commits und vieles mehr suchen.

Wir sehen uns diese Software jetzt etwas näher an.

Fuzzy Finder installieren

Unter auf Debian basierenden Linux-Distributionen installieren Sie diese Software wie üblich ganz einfach über die Paket-Verwaltung durch das Paketfzf„, genauso wie unter Void Linux. Auch die meisten anderen Linux-Distributionen bringen das Paket in ihren Repositorys mit.

Fuzzy Finder nutzen

Versuchen wir einmal, einen ganz einfachen Befehl mit „find“ – einfach auf dem Terminal eingeben:

find * -type f | fzf > selected

Der Befehlfind“ sucht ganz einfach nach regulären Dateien und übergibt diese an „fzf“ – was wir erhalten, ist eine interaktive Suche:

Jetzt können wir einfach beginnen einzutippen – etwa „myself„:

Die Software liefert nur noch passende Ergebnisse und natürlich das Verzeichnis, in dem die Datei oder das Verzeichnis liegt. Haben Sie den Dienst „locate“ installiert, funktioniert dies natürlich auch:

locate / | fzf

Alternativ starten Sie den Befehl einfach mittels:

fzf

Dies kann beim Start ein wenig länger dauern – aber die zwei Sekunden hat man oft Zeit.

Wir können gleich beim Start das Gesuchte mit der Option „-q begriff“ mitgeben – etwa:

fzf -q 'begriff'

Auf diese Weise können wir auch unscharf suchen – wir wissen also nicht den kompletten Begriff. Hier die Möglichkeiten:

Ein Beispiel:

fzf -q ^debian

Sie können sich Textdateien auch direkt in der Suche ansehen, hierzu starten Sie die Software mit dem Befehl:

fzf --preview 'cat {}'

Folgende Einstellungen in der Konfiguration der Shell (.bashrc und .zshrc) sind hilfreich – einfach kopieren und einfügen:

CODE: ALLES AUSWÄHLEN

# Use ~~ as the trigger sequence instead of the default **
export FZF_COMPLETION_TRIGGER='~~'

# Options to fzf command
export FZF_COMPLETION_OPTS='--border --info=inline'

# Use fd (https://github.com/sharkdp/fd) instead of the default find
# command for listing path candidates.
# - The first argument to the function ($1) is the base path to start traversal
# - See the source code (completion.{bash,zsh}) for the details.
_fzf_compgen_path() {
  fd --hidden --follow --exclude ".git" . "$1"
}

So kann man bei Fuzzy Finder (fzf) Funde mit einem Klick öffnen

Das Terminal-ProgramFuzzy Finder (fzf) wird auf der Linux-Bibel Österreich hier vorgestellt. Es ist unglaublich schnell und nützlich und erspart einem viele Klicks. Kein „Wo habe ich jetzt nur diese Datei gespeichert?“.

Vermissen daran tue ich nur, dass der Fund nur über Umwege geöffnet werden kann. Mit dem folgenden Script geht das Öffnen jetzt aber super einfach mit einem Klick – einfacher gehts wirklich nicht:

#!/bin/bash

# Führe fzf aus und speichere das Ergebnis in der Variable "selected_files"
selected_files=$(fzf)

# Schleife durch jede ausgewählte Datei
for file in "$selected_files"; do
  # Öffne die Datei durch Anklicken, auch wenn der Dateiname Leerzeichen enthält
  xdg-open "$file"
done

Das Script installieren
1 Rauskopieren
2 In einen einfachen Editor einfügen
3 Speichern unter irgendeinem Namen (ohne Dateiendung), im Beispiel unten fzff
4 Am einfachsten im Verzeichnis ~/.local/bin/
5 Die Datei ausführbar machen mit chmod +x ~/.local/bin/fzff (Terminal)
6 Fertig

Jetzt fzff nützen
1 Im Terminal fzff eingeben
Enter – eine Liste wird erstellt
2 Einfach das Suchwort (oder mehrere) schreiben (ohne Anführungszeichen)
4 Die Liste zeigt alle Zeilen mit dem Suchwort bzw. mit Buchstaben davon
5 Ist die Zeile mit dem roten Winkel davor die richtige – Enter drücken
6 Sonst mit den Pfeiltasten hinauf und hinunter zur richtigen Zeile – Enter – die gesuchte Datei wird sofort mit dem Standard-Programm für diesen Dateityp geöffnet
7 Man kann auch einfach einzelne beliebige Zeilen mit der linken Maustaste doppelt anklicken (evtl. abhängig vom Terminal, das man benützt)

Hier ein Beispiel für einen Fund:

Bei der Zeile mit dem roten Winkel davor genügt ein Enter-Druck – bei jeder der Zeilen ein doppelter Mausklick – und die Datei wird geöffnet.

Bekommt man eine Fehlermeldung wie „Das Adressschema von … konnte nicht erkannt werden“, muss man wahrscheinlich die Datei ~/.config/mimeapps.list öffnen und passende Einträge hinzufügen. Oder ich musste bei mir in der /etc/xfce-mimeapps.list alles unter dem Titel [Added Associations] löschen (mit Admin-Rechten). Aber Vorsicht!

Verfasst mit Hilfe von Rocki

Categories:

Schreibe einen Kommentar

Noch keine Reaktion

Neue Themen im Forum
Frage zu GrubDanke @juhu, das war für mich eine reine Verständnisfrage allge … Weiterlesen
Brother Drucker unter LinuxMit der Suche nach „Linux Brother HL-2030“ fand ich zur Seite htt … Weiterlesen
DebianJetzt klappt's! Das Problem war das Erstellen einer EFI-Sy … Weiterlesen
Kategorien im Wiki
WIKI-Beiträge des Monates

Die Beiträge des Monates finden Sie im Kalender unter den blau markierten Tageszahlen.

September 2023
M D M D F S S
 123
45678910
11121314151617
18192021222324
252627282930  
Archive