Broot: Dateimanager für die Kommandozeile

Aus LinuxUser 07/2021

Broot: Dateimanager für die Kommandozeile

© Phichat Phruksarojanakun / 123RF.com

Flink durchs Geäst

Der Dateimanager Broot sorgt auf der Konsole für eine übersichtlichere, schnelle Navigation im Verzeichnisbaum.

Dateimanager gehören zu den wichtigsten Werkzeugen, die Sie täglich nutzen, um im Dateisystem zu navigieren, Dateien anzulegen, zu löschen, zu verschieben, zu kopieren und vieles mehr. Es gibt sie in vielen Formaten, von reinen Konsolenwerkzeugen über die vielen Norton-Commander-Klone wie den Midnight Commander bis hin zu grafischen Tools wie Dolphin (KDE), Nautilus (Gnome), Thunar (XFCE) oder PcmanFM (LXDE). Und wenn Sie einmal mit dem unsäglichen Windows Explorer arbeiten mussten, wissen Sie vermutlich einen guten Dateimanager zu schätzen.

In der Fülle von Dateimanagern aller Arten gibt es Exoten, die sich funktional deutlich von der Konkurrenz abheben. Dazu gehört auch der in Rust geschriebene Broot (ausgesprochen Be Root), ein interaktiver Dateimanager für die Kommandozeile, der mit einem innovativen Konzept aufwartet. Wir sehen uns an, was Broot an neuen Ideen umsetzt und für wen sich ein näherer Blick auf diesen ungewöhnlichen Dateimanager lohnt.

Bei Tree abgeschaut

Broot wird auf Github [1] gepflegt und steht für Linux, Raspberry Pi OS, MacOS und Windows zur Verfügung. Der flinke Dateimanager hat sich auf die Fahnen geschrieben, dem Anwender mit wenig Aufwand einen besseren und schnelleren Überblick auch in sehr großen Verzeichnissen zu verschaffen. Die Darstellung lehnt sich im Prinzip an die Ausgabe des Befehls tree an (Abbildung 1). Broot stellt den Dateibaum kompakter dar, aber im Gegensatz zu Tree interaktiv, und ermöglicht mit Fzf [2], einem Tool zur unscharfen Suche, diesen Baum blitzschnell zu durchsuchen.

Abbildung 1: Große Verzeichnisse klappt Broot nur teilweise auf und zeigt dabei an, wie viele Verzeichnisse oder Dateien es nicht ausgeklappt hat.

Abbildung 1: Große Verzeichnisse klappt Broot nur teilweise auf und zeigt dabei an, wie viele Verzeichnisse oder Dateien es nicht ausgeklappt hat.

Broot einrichten

Neben dem Github-Repo pflegen die Entwickler eine Webseite für das Projekt, auf der auch die Instruktionen für die Installation [3] und die Konfiguration bereitstehen. Dort finden sich auch Binärpakete für Android, Linux, Linux mit Musl, Raspberry Pi OS und Windows 10.

Alpine Linux, Arch Linux, Manjaro, Solus, Void Linux und die BSD-Derivate NetBSD und FreeBSD halten Broot in ihren Paketarchiven vor, allerdings in teilweise veralteten Versionen [4]. Für Distributionen mit einem Paketmanagement auf der Basis von DEB-Paketen gibt es ein Repository aus dritter Hand zum Einbinden in die Quellenliste. Es bietet neben Broot noch weitere, teils recht interessante Anwendungen an [5]. Dort steht auch ein DEB-Paket ohne Repository bereit, bei dessen Verwendung Sie sich aber selbst um Updates kümmern müssen. Für einen Test genügt das aber völlig aus und erspart die bei Debian aus Anwendersicht kürzlich verschlimmbesserte Integration des Schlüssels für Repositories aus dritter Hand [6].

Für eine feste Installation raten wir dazu Broot selbst aus dem Quelltext zu bauen (Listing 1), wofür Sie eine Rust-Entwicklungsumgebung [7] benötigen. Damit erhalten Sie die aktuellste Version. Seine Konfiguration legt Broot im Home-Verzeichnis unter ~/.config/broot/conf.hjson ab; auf der Webseite finden Sie eine detaillierte Beschreibung dazu.

Listing 1

Broot bauen

$ git clone https://github.com/Canop/broot.git
$ cargo install --path .

Nachrüstung

Broot fragt beim ersten Start, ob es die Shell-Funktion br nachrüsten darf (Abbildung 2). Das sollten Sie erlauben, da Sie damit den Befehl cd zum Wechseln des Verzeichnisses innerhalb von Broot verwenden können. Danach starten Sie Broot künftig einfach mit dem Befehl br, gefolgt vom Pfad des anzuzeigenden Verzeichnisses. Sparen Sie sich die Pfadangabe, zeigt das Tool die Inhalte des aktuellen Arbeitsverzeichnisses an.

Abbildung 2: Beim ersten Start nach der Installation fragt Broot, ob Sie einverstanden sind, Broot als Shell-Funktion einzurichten. Dem sollten Sie zustimmen.

Abbildung 2: Beim ersten Start nach der Installation fragt Broot, ob Sie einverstanden sind, Broot als Shell-Funktion einzurichten. Dem sollten Sie zustimmen.

Die Inspiration zu Broot lieferte wie schon erwähnt der Befehl tree. Vergleichen Sie aber die Ausgaben von Tree und Broot nebeneinander, fällt auf, dass Broot dasselbe Verzeichnis viel kompakter darstellt (Abbildung 3). Das liegt daran, dass es nicht sofort alle Verzeichnisse öffnet. Sie navigieren mit der Tastatur durch den Baum und drücken die Eingabetaste, um ein Verzeichnis zu öffnen. In vielen Terminals funktioniert das auch per Doppelklick mit der Maus. Zurück geht es mit [Esc].

Abbildung 3: Die Ausgabe der Befehle <code>tree</code> und <code>broot</code> nebeneinander zeigt die unterschiedliche Arbeitsweise. Ein Blick auf den jeweiligen Scrollbalken gen&uuml;gt.

Abbildung 3: Die Ausgabe der Befehle tree und broot nebeneinander zeigt die unterschiedliche Arbeitsweise. Ein Blick auf den jeweiligen Scrollbalken genügt.

Standardansicht

Mit br -dp öffnen Sie eine Ansicht auf den Dateibaum, die in etwa der von ls -la entspricht, aber eine interaktive Bedienung sowie die Suche in Verzeichnissen sowie direkte Aktionen auf die Dateien und Ordner erlaubt. Bevorzugen Sie diese (oder eine andere) Ansicht als Standard, stellen Sie das in der Konfiguration unter ~/.config/broot/conf.hjson ein, indem Sie dort bei default flags das Kommentarzeichen entfernen und die gewünschte Ansicht eintragen.

Wenn Sie schon einmal dort sind, passen Sie bei Bedarf unter skins die Ausgabe farblich an Ihre Vorlieben an. Broot kann theoretisch auch Dateityp-Icons anzeigen, allerdings gelang uns eine entsprechende Konfiguration nicht: Es erschienen lediglich leere Rechtecke anstatt Icons [8].

Am schnellsten gelangen Sie in die Konfiguration, wenn Sie in Broot ein Fragezeichen in die Suchzeile eingeben und in der Hilfe dann os (für open_stay) tippen. Daraufhin öffnet Broot die Datei mittels der Betriebssystemfunktion xdg-open in der ihr zugeordneten Anwendung.

Möchten Sie eine Datei öffnen und gleichzeitig Broot verlassen, so gelingt das mit [Alt]+[Eingabe]. Ein zusätzliches Panel öffnen Sie mit [Strg]+[Pfeil-rechts]. In der Vorgabe verwendet Broot zwei Panels (Abbildung 4), Sie können die Anzahl aber in der Konfiguration erhöhen. Mit [Strg]+[Q] verlassen Sie Broot.

Abbildung 4: Broot erm&ouml;glicht das Verwenden mehrerer Panels nebeneinander, zwischen denen Sie etwa per <code>cpp</code> Dateien hin und her kopieren.

Abbildung 4: Broot ermöglicht das Verwenden mehrerer Panels nebeneinander, zwischen denen Sie etwa per cpp Dateien hin und her kopieren.

Einige Argumente erweitern beim Start die Darstellung um gewünschte Attribute. So holt br -h versteckte Dateien ans Licht, während br -i Dateien anzeigt, die per Git-Ignore-Regel ausgeblendet werden sollen. Den Zustand dieser beiden Attribute verdeutlicht Broot mit einem y oder n in der Suchmaske ganz unten rechts. Mit br -d zeigen Sie das Datum der jeweils letzten Änderung an.

Der sogenannte whale spotting mode (br -w) präsentiert eine nach Größe sortierte Liste der Dateien, in der Broot die Größenverhältnisse ähnlich wie Ncdu oder Gdu durch ein Balkendiagramm visualisiert (Abbildung 5).

Abbildung 5: Der sogenannte <span class="ui-element">whale spotting mode</span>, zu erreichen &uuml;ber <code>br -w</code>, zeigt, &auml;hnlich wie Ncdu, die dicken Brocken nach Gr&ouml;&szlig;e sortiert auch visuell an.

Abbildung 5: Der sogenannte whale spotting mode, zu erreichen über br -w, zeigt, ähnlich wie Ncdu, die dicken Brocken nach Größe sortiert auch visuell an.

Unscharfe Suche

Am unteren Ende der interaktiven Anzeige finden Sie eine Suchmaske, die eine der Stärken von Broot darstellt. Direkt darüber zeigt eine Statusleiste situationsgerecht an, was ein eingegebener Befehl tun wird oder dass ein Argument falsch ist.

Angenommen, Sie wären sich nicht sicher, wie man LinuxUser buchstabiert, wüssten aber, dass der Name die drei Buchstaben l, x und u in dieser Reihenfolge enthält, dann könnten Sie die unscharfe Suche (fuzzy search) von Broot einsetzen, um alle Dateien zu finden, deren Name die drei Buchstaben in dieser Reihenfolge enthält (Abbildung 6).

Abbildung 6: Eine der St&auml;rken von Broot ist die unscharfe Suche, mit der Sie auch Dateien oder Verzeichnisse finden, deren Namen Sie vergessen haben oder &uuml;ber deren Schreibweise Zweifel bestehen. Sie geben dazu einige Buchstaben ein, die in der angegebenen Reihenfolge, aber nicht zwingend hintereinander im Namen vorkommen.

Abbildung 6: Eine der Stärken von Broot ist die unscharfe Suche, mit der Sie auch Dateien oder Verzeichnisse finden, deren Namen Sie vergessen haben oder über deren Schreibweise Zweifel bestehen. Sie geben dazu einige Buchstaben ein, die in der angegebenen Reihenfolge, aber nicht zwingend hintereinander im Namen vorkommen.

Leiten Sie den Suchbegriff mit einem Schrägstrich (Slash) ein, so können Sie bei der Suche auch reguläre Ausdrücke (Regex) verwenden. Ein in der Suchmaske eingegebenes Fragezeichen ruft die eingebaute Hilfe auf, die eine Teilmenge der ausführlichen Dokumentation auf der Webseite unter dem Menüpunkt Usage anbietet [9].

Möchten Sie die Suche auf sehr großen oder sehr langsamen Datenträgern einsetzen, kann es nötig sein, :total_search zu aktivieren oder [Strg]+[S] zu drücken, damit Broot auch wirklich den gesamten Datenträger durchsucht.

Möchten Sie Broot verlassen und vorher per cd in ein Verzeichnis in die Shell wechseln, navigieren Sie zum gewünschten Verzeichnis und drücken [Alt]+[Eingabe]. Wenden Sie dieselbe Tastenkombination auf eine Datei an, beendet sich Broot ebenfalls und öffnet die Datei mit der zugehörigen Anwendung. Apropos Shell: Es muss nicht die Bash oder Dash sein, Broot kommt auch mit der Z-Shell und der Fish zurecht.

Verben

Die Suchleiste dient auch zur Eingabe von sogenannten Verben, die die Entwickler auf der Webseite unter Usage | Verbs**& Commands erklären. Hinter diesen Verben stecken Linux-Kommandos, die Sie direkt in Broot ausführen können. Alle verfügbaren Verben sehen Sie durch Eingabe eines Fragezeichens in die Suchleiste. Darüber hinaus können Sie in der Broot-Konfigurationsdatei auch selbst Verben definieren.

Die Suchleiste kennt zwei Modi: den input mode und den command mode. Letzteren nutzen Sie, um Inhalte zu finden. Möchten Sie aber Verben einsetzen, geben Sie als Präfix eine Leerstelle oder einen Doppelpunkt ein. Darauf folgt dann das Verb und gegebenenfalls ein Argument. Möchten Sie beispielsweise eine Datei in Ihrem Lieblingseditor öffnen, navigieren Sie sie an und tippen [Leertaste]+[E] oder [Umschalt]+[.][E] in die Suchleiste ein.

Auch die oft genutzten Befehle mv, cp, rm und mkdir liegen als Verb vor. Darüber hinaus zeigt d das letzte Änderungsdatum, pe listet die Besitzverhältnisse, und ss sortiert Verzeichnisse und Dateien nach Größe. Mit h fördern Sie versteckte Dateien zutage. Bei von Git verwalteten Verzeichnissen zeigt gf die Zahl geänderter oder neuer Dateien oben in einer Statuszeile an, während gs den Befehl git status abbildet. Sie können auch die Suche mit Kommandos kombinieren, indem Sie durch Eingabe von Buchstaben zu einer Datei navigieren und dann, ohne den Suchbegriff per [Esc] zu entfernen, die Datei mit :rm löschen.

Arbeiten Sie mit Panels, kommt zusätzlich das Verb cpp (copy to panel) ins Spiel, das das Kopieren von einem in das andere Panel erlaubt. Das Exportieren von Verzeichnisbäumen mit dem Befehl pt (print tree) exportiert beispielsweise den Baum eines Verzeichnisses in die Shell. In der Konfiguration können Sie den Befehl aber auch so abändern, dass er in ein bestimmtes Verzeichnis exportiert. Um Broot in Schwarzweiß und ohne Dekoration zu starten, geben Sie broot --no-style ein.

Fazit

Broot zählt zu den nützlichsten CLI-Tools, die uns seit geraumer Zeit begegnet sind. Als genauso exzellent wie Broot selbst entpuppt sich die Dokumentation auf der Webseite. Studieren Sie sie genauer, stellen Sie fest, dass es noch viel mehr zu entdecken gibt, als dieser Artikel abbilden kann.

Broot vermag die Navigation im Dateisystem zu beschleunigen und Befehle wie tree und ls zu ersetzen. Sie können Bilder in einem Panel in niedriger Auflösung anzeigen (Abbildung 7), Anwender der Terminalemulation Kitty [10] erhalten sogar hochaufgelöste Bilder. Mit Kitty funktionierten im Test dann übrigens auch die Icons.

Abbildung 7: Broot &ouml;ffnet sogar Bilder, wenn auch in schlechter Qualit&auml;t. Nutzen Sie den Terminalemulator Kitty, erhalten Sie hochaufgel&ouml;ste Bilder, da diese zum Rendern die GPU einspannt.

Abbildung 7: Broot öffnet sogar Bilder, wenn auch in schlechter Qualität. Nutzen Sie den Terminalemulator Kitty, erhalten Sie hochaufgelöste Bilder, da diese zum Rendern die GPU einspannt.

Wer viel am Prompt arbeitet, der dürfte Broot schnell ins Herz schließen. Bei einer flachen Lernkurve fällt der Zugewinn an Übersicht und Arbeitstempo beträchtlich aus. Wer bislang mit der Konsole fremdelte, könnte dank Broot vielleicht sogar ein innigeres Verhältnis zur Kommandozeile gewinnen. (jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 07/2021 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben