fff - Fucking Fast File-Manager

  Ralf Hersel   Lesezeit: 6 Minuten  🗪 5 Kommentare

Der Dateimanager fff bereichert die Nische für sehr einfaches und schnelles File-Handling im Terminal.

fff - fucking fast file-manager

Braucht man einen Dateimanager im Terminal? Die Null-acht-fünfzehn-Anwenderin vermutlich nicht, verwendet sie doch Dolphin, Nautilus, Thunar, oder einen anderen grafischen Dateimanager der Lieblingsdistribution. Die Konsoleros kommen mit den Möglichkeiten der Bash, Z-Shell oder Fish bestens zurecht und haben sich mit einigen Aliasen das Leben im Terminal angenehm eingerichtet.

Über Dateimanager im Terminal haben wir schon ein paar Mal geschrieben. Da gab es den Übersichts-Beitrag zu Xtree, Norton Commander, Midnight Commander, Ranger und NNN, sowie einen Extra-Artikel zu NNN. Diese Anwendungen bieten ein TUI (Text User Interface), um den Umgang mit Dateien und Verzeichnissen auf der Kommandozeile zu vereinfachen. Um die Eingangsfrage zu beantworten: Warum nicht?

Am vergangenen Sonntag stellte der User @turysaz auf Mastodon diese Frage:

Kennt ihr eine CLI-Variante, um schnell viele plaintext-files zu sichten?
Also im Prinzip sowas wie `less ./*`, aber mit irgendeiner eleganteren Navigation zwischen den files als `:n` und `:p` (vor- und zurückblättern zwischen den files). Vielleicht eher so eine Art folder-view wie in (praktisch allen) Texteditoren.

Für solche Anwendungsfälle bietet sich Ranger an, mit dem man bequem durch die Textdateien scrollen kann. Daraus schliesse ich, dass es einen Bedarf für TUI-Dateimanager gibt. By the way, I use Ranger!

Mit fff gibt es einen neuen Vertreter dieser Gattung. Wobei das Attribut "neu" nicht stimmt, gibt es das Werkzeug doch schon seit dem 18. Januar 2019 und verhält sich ähnlich wie NNN. Letzterer kann sehr viel mehr als fff, führte bei mir jedoch zu Problemen, da dieser File-Manager an meinen Systemeinstellungen rumgefummelt hat. Ich weiss nicht mehr genau, was es war.

Installation

fff ist ein Bash-Skript und unterliegt der MIT-Lizenz. Man findet fff in den üblichen Repositories. Hier sind ein paar Befehle für (eher unübliche) Paketmanager:

  • KISS Linux (based): kiss b fff
  • FreeBSD: pkg install fff
  • Haiku: pkgman install fff
  • macOS: brew install fff
  • Nix: nix-env -iA fff
  • Void Linux: xbps-install -S fff
  • Arch Linux: pacman -S fff

Trotz dieser ungewöhnlichen Auswahl gehe ich davon aus, dass ihr fff auch in eurem Paketmanager findet.

Nach der Installation kann man fff im Terminal mit der Eingabe von (sag nur) fff starten. Doch wer möchte drei F's eintippen, wenn es auch mit einem geht. Dazu ergänzt ihr eure Shell-Konfiguration mit dieser Funktion:

# fff-filemanager
f() {
    fff "$@"
    cd "$(cat "${XDG_CACHE_HOME:=${HOME}/.cache}/fff/.fff_d")"
}

Nach einem Neustart des Terminals könnt ihr fff mit f aufrufen, worauf es sich wie im Titelbild präsentiert. Der Eintrag in eurer Shell-Konfiguration sorgt dafür, dass fff nach der Auswahl eines Verzeichnisses, in ebendieses verzweigt. Achtung: für andere Shells sieht der Eintrag etwas anders aus; schaut bitte bei der Quelle nach.

Bedienung

Das Werkzeug wird über die Tastatur gesteuert. Die Befehle dafür überschreiten nicht das Erinnerungsvermögen; so viele sind es nicht:

j: scroll down
k: scroll up
h: go to parent dir
l: go to child dir

enter: go to child dir
backspace: go to parent dir

-: Go to previous dir.

g: go to top
G: go to bottom

:: go to a directory by typing.

.: toggle hidden files
/: search
t: go to trash
~: go to home
e: refresh current dir
!: open shell in current dir

x: view file/dir attributes
i: display image with w3m-img

down:  scroll down
up:    scroll up
left:  go to parent dir
right: go to child dir

f: new file
n: new dir
r: rename
X: toggle executable

y: mark copy
m: mark move
d: mark trash (~/.local/share/fff/trash/)
s: mark symbolic link
b: mark bulk rename

Y: mark all for copy
M: mark all for move
D: mark all for trash (~/.local/share/fff/trash/)
S: mark all for symbolic link
B: mark all for bulk rename

p: execute paste/move/delete/bulk_rename
c: clear file selections

[1-9]: favourites/bookmarks (see customization)

q: exit with 'cd' (if enabled).
Ctrl+C: exit without 'cd'.

Diese Key-Bindings lassen gemäss euren Vorlieben verändern. Wie man das macht, seht ihr in der Quelle. Cut/Copy/Paste ist etwas gewöhnungsbedürftig, aber nicht so schwierig: Mit den mark-Befehlen wählt ihr Dateien aus, um die Aktion dann mit p auszuführen.

Fazit

Der Fucking Fast File-Manager ist schnell und einfach, sodass er sich für den täglichen Einsatz im Terminal empfiehlt. Wer (viel) mehr benötigt, sollte sich mit Ranger vertraut machen. Einen eigenen Artikel zu Ranger werde ich demnächst schreiben.

Quelle: https://github.com/dylanaraps/fff

Tags

fff, Dateimanager, Terminal

Henrikx
Geschrieben von Henrikx am 29. März 2023 um 11:29

"Die Null-acht-fünfzehn-Anwenderin" Wie bist du denn drauf

Ralf Hersel
Geschrieben von Ralf Hersel am 29. März 2023 um 18:08

Danke, gut. Eigentlich wollte ich "Karl-Heinz" schreiben.

Markus
Geschrieben von Markus am 29. März 2023 um 19:29

Chefin, Managerin, Anwältin = Emanzipiert

Putzfrau, Null-acht-fünfzehn-Anwenderin = Diskriminierung

Erkenne den Unterschied ;-)

Naja
Geschrieben von Naja am 29. März 2023 um 15:00

Nach Änderungen an der shell config kann diese auch einfach in der aktuellen Sitzung neu eingelesen werden. Das: "Nach einem Neustart des Terminals könnt ihr fff mit f aufrufen" ist also gar nicht notwendig.

z.B. für die bash:

source ~/.bashrc

oder noch kürzer, ein Punkt "." statt "source"

MaSchle
Geschrieben von MaSchle am 29. März 2023 um 19:45

also bei mir läuft der midnight Commander mit mcedit, da muss ich mir keine Tastenfunktionen merken, ich kann aber alle meine probleme lösen