Eza

Aus wiki.archlinux.de

exa ist eine zum großen Teil zu ls kompatible Konsolenanwendung zur Anzeige von Dateien und Verzeichnisinhalten, bietet dabei aber gleichzeitig standardmäßig viele moderne Funktionen, die mit ls nicht oder nur mit Aufwand umsetzbar sind.

Dazu gehören unter anderem standardmäßig farbige Darstellung zur Unterscheidung der Dateitypen, Git-Integration, Baumansicht mit Dateidetails, Erweiterte Dateiattribute (xattrs), vielfältig kombinierbare Dateifilter und Sortieroptionen, und nicht zuletzt das parallele erfassen von Dateien, das es schneller macht als ls, das die Dateien nur nacheinander erfassen kann.

Installation

Das Programm ist als exa in community verfügbar, und kann von dort mittels Pacman installiert werden.

pacman -S exa

Konfiguration

Die Grundkonfiguration von exa erfolgt über Umgebungsvariablen, die Ausgabe von exa kann mittels Befehlszeilenoptionen angepasst werden (siehe Beispiele).

Variable Auswirkung
EXA_STRICT=true Kann verwendet werden, um sich gegenseitig ausschließende Optionen abzufangen, wenn zwei gegensätzliche Optionen angegeben werden, bricht exa mit einer Fehlermeldung ab, anstatt stillschweigend die erste Option zu verwenden.
EXA_GRID_ROWS=N Wenn man --grid --long (siehe Beispiele) verwendet, und das Konsolenfenster sehr breit ist, kann es sein, dass man nur eine Zeile erhält, mittels dieser Option wird sichergestellt, dass die Grid-Ansicht nur dann verwendet wird, wenn mehr als N Zeilen Pro Spalte generiert werden würden.
EXA_COLORS='…' Zu LS_COLORS kompatible Liste an Farbdefinitionen, die allerdings wesentlich mehr mögliche Farben zulässt. Dies wird nur benötigt, wenn man das Stnadardmäßige Farbschema nicht verwenden möchte.
EXA_ICON_SPACING=N Abstand von N Zeichen zum Namen, wenn man Datei-Icons verwendet (siehe Beispiele), da Terminals unterschiedlich weite Abstände generieren, wenn sie Icons darstellen sollen.
COLUMNS=N Benutzt für die Ausgabe N Zeichen anstatt die Anzahl an Zeichen die das Terminal breit ist. Wenn das Terminal schmaler als N ist, wird ganz normal am Rand des Terminals umgebrochen.

Beispiele

exa lässt sich vielfältig über Befehlszeilenoptionen konfigurieren, die sich fast beliebig miteinander konfigurieren lassen. Eine gute Anlaufstelle sind die Offizielle Seite, sowie die Manpage von exa.

Baumansicht

Eine ausführliche Ansicht mit Dateieigenschften sowie der Baumstruktur der Dateien und Verzeichnisse.

exa --long --tree

Grid-Ansicht von /

Das Grid passt sich automatisch an die Breite des Terminal-Fensters an.

exa --long --grid /

Das kann dazu führen, dass pro Spalte im Grid nur eine Datei angezeigt wird, was eventuell nicht gewollt ist, hier kann man mittels Umgebungsvariable EXA_GRID_ROWS=N definieren, dass mindestens N Zeilen pro Spalte benutzt werden sollen. Wenn weniger Zeilen möglich sind, wird das Grid nicht benutzt.

Header für die Spalten und Git-Information

Für etwas mehr Übersicht kann man sich für die einzelnen Spalten der langen Ansicht die entsprechenden Header anzeigen lassen. Wenn man in einem Git-Repository ist, kann man sich zusätzlich Git-Statusinformationen anzeigen lassen.

exa --long --header --git

Aktuell werden für die Git-Informationen lediglich erfasst, ob es eine „neue Datei“ ist die bisher nicht versioniert wurde, oder ob an einer bestehenden Datei Änderungen vorgenommen werden.

Rekursion mit Limit

Standardmäßig wird von exa bei der rekursiven Anzeige von Dateien und Verzeichnissen alles angezeigt, wenn man diese Informationen nicht benötigt, kann man den Level der Rekursion begrenzen

exa --recurse --long --level=2

Baumansicht mit Icons

Es besteht die Möglichkeit, sich Unicode-Icons für die gängigsten Dateitypen anzeigen zu lassen, hierbei wird die Dateiendung benutzt, und nicht der eigentliche Dateityp.

exa --icons --tree

Damit Icons angezeigt werden, muss der Terminalemulator Unicode-Fähig sein, und es muss eine Schriftart verwendet werden, die für die Code-Points aus der Private Use Area (U+E000 bis U+F8FF) entsprechende Zeichen bereitstellt. Die exa-Autoren empfehlen die gepatchten Schriften aus dem Nerd-Fonts-Projekt, diese sind im AUR verfügbar: [1].

Komplexer Aufruf mit Dateizeiten

Man kann sich zum Beispiel auch alle Dateizeiten (erstellt, geändert, letzter Zugriff) anzeigen lassen, und mittels weiterer Optionen entsprechend so gestalten, dass man nur die Zeiten und den Dateinamen erhält.

exa --long --header --changed --modified --created --accessed --no-permissions --no-user --no-filesize --sort created --reverse --time-style=long-iso --ignore-glob=directory?

Damit die Zugriffszeit angezeigt werden kann, muss ein Dateisystem verwendet werden, dass dies Unterstützt, und diese Funktion auch aktiv hat.

Einfacher Aufruf mit Pipe

… selbstverständlich kann man exa auch einfach wie ls benutzen, um zum Beispiel die Anzahl der Dateien anzeigen zu lassen.

exa | wc -l

exa ist nicht zu 100 Prozent kompatibel mit ls, aber die Autoren haben dies auf der offiziellen Website in den Abschnitten zu den Entsprechenden Funktionen dokumentiert.

Weblinks