3 Punkte von GN⁺ 2024-07-23 | 1 Kommentare | Auf WhatsApp teilen

eza

Einführung in eza

  • eza ist ein moderner Ersatz für den Dateiauflistungsbefehl ls, der standardmäßig auf Unix- und Linux-Betriebssystemen verfügbar ist
  • Verwendet Farben, um Dateitypen und Metadaten zu unterscheiden
  • Erkennt symbolische Links, erweiterte Attribute und Git
  • Ist klein, schnell und wird als einzelne Binärdatei bereitgestellt
  • Zielt darauf ab, ein benutzerfreundlicher und funktionsreicher Ersatz für ls zu sein

Hauptfunktionen von eza

  • Behebt den in exa 2021 aufgetretenen „Grid-Bug“
  • Unterstützung für Hyperlinks
  • Stellt Details zu Mount-Points bereit
  • Gibt SELinux-Kontexte aus
  • Gibt den Status von Git-Repositories aus
  • Zeigt menschenlesbare relative Datumsangaben an
  • Mehrere Sicherheitskorrekturen
  • Unterstützung für helle Terminalfarben
  • Verschiedene kleinere Bugfixes und Änderungen

Installation

  • eza ist für Windows, macOS und Linux verfügbar
  • Installationsanweisungen je nach Plattform und Distribution sind in INSTALL.md zu finden

Kommandozeilenoptionen

Anzeigeoptionen

  • -1, --oneline: Zeigt einen Eintrag pro Zeile an
  • -G, --grid: Zeigt Einträge in einer Gitteransicht an (Standard)
  • -l, --long: Zeigt erweiterte Details und Attribute an
  • -R, --recurse: Durchsucht Verzeichnisse rekursiv
  • -T, --tree: Durchsucht Verzeichnisse rekursiv in Baumdarstellung
  • -x, --across: Richtet das Gitter horizontal aus
  • -F, --classify=(when): Zeigt den Typ im Dateinamen an (immer, automatisch, nie)
  • --colo[u]r=(when): Legt fest, wann Terminalfarben verwendet werden (immer, automatisch, nie)
  • --colo[u]r-scale=(field): Hebt Unterschiede nach Ausprägung von field hervor (all, age, size)
  • --color-scale-mode=(mode): Verwendet bei --color-scale feste Farben oder einen Verlauf (fixed, gradient)
  • --icons=(when): Legt fest, wann Icons angezeigt werden (immer, automatisch, nie)
  • --hyperlink: Zeigt Einträge als Hyperlinks an
  • --absolute=(mode): Zeigt Einträge mit absolutem Pfad an (on, follow, off)
  • -w, --width=(columns): Legt die Bildschirmbreite in Spalten fest

Filteroptionen

  • -a, --all: Zeigt versteckte Dateien und Dotfiles an
  • -d, --list-dirs: Listet Verzeichnisse wie normale Dateien auf
  • -L, --level=(depth): Begrenzt die Rekursionstiefe
  • -r, --reverse: Kehrt die Sortierreihenfolge um
  • -s, --sort=(field): Legt das Sortierfeld fest
  • --group-directories-first: Listet Verzeichnisse vor anderen Dateien auf
  • -D, --only-dirs: Listet nur Verzeichnisse auf
  • -f, --only-files: Listet nur Dateien auf
  • --no-symlinks: Zeigt keine symbolischen Links an
  • --show-symlinks: Zeigt symbolische Links explizit an
  • --git-ignore: Ignoriert in .gitignore erwähnte Dateien
  • -I, --ignore-glob=(globs): Legt Glob-Muster für zu ignorierende Dateien fest

Optionen für die lange Ansicht

  • -b, --binary: Zeigt Dateigrößen mit binären Präfixen an
  • -B, --bytes: Zeigt Dateigrößen in Byte an
  • -g, --group: Zeigt die Gruppe jeder Datei an
  • -h, --header: Fügt jeder Spalte eine Kopfzeile hinzu
  • -H, --links: Zeigt die Anzahl der Hardlinks jeder Datei an
  • -i, --inode: Zeigt die Inode-Nummer jeder Datei an
  • -m, --modified: Verwendet das Feld für den Änderungszeitstempel
  • -M, --mounts: Zeigt Mount-Details an (nur Linux und macOS)
  • -S, --blocksize: Zeigt die zugewiesene Blockgröße des Dateisystems an
  • -t, --time=(field): Legt fest, welches Zeitstempelfeld verwendet wird
  • -u, --accessed: Verwendet das Feld für den Zugriffszeitstempel
  • -U, --created: Verwendet das Feld für den Erstellungszeitstempel
  • -X, --dereference: Folgt symbolischen Links für Dateiinformationen
  • -Z, --context: Zeigt den Sicherheitskontext jeder Datei an
  • -@, --extended: Zeigt erweiterte Attribute und Größe jeder Datei an
  • --changed: Verwendet das Feld für den Änderungszeitstempel
  • --git: Zeigt den Git-Status jeder Datei an
  • --git-repos: Zeigt den Git-Status jedes Verzeichnisses an
  • --git-repos-no-status: Zeigt nur an, ob ein Verzeichnis ein Git-Repository ist (schneller)
  • --no-git: Zeigt keinen Git-Status an
  • --time-style: Legt das Zeitstempelformat fest
  • --total-size: Zeigt rekursive Verzeichnisgrößen an
  • --no-permissions: Zeigt das Berechtigungsfeld nicht an
  • -o, --octal-permissions: Zeigt die Berechtigungen jeder Datei im Oktalformat an
  • --no-filesize: Zeigt das Feld für die Dateigröße nicht an
  • --no-user: Zeigt das Benutzerfeld nicht an
  • --no-time: Zeigt das Zeitfeld nicht an
  • --stdin: Liest Dateinamen von stdin

Wie man zu eza beiträgt

  • Wer zu eza beitragen möchte, sollte zunächst den Verhaltenskodex befolgen
  • Nach dem Verständnis des Verhaltenskodex bietet CONTRIBUTING.md Informationen für die eigentliche Mitarbeit

Zusammenfassung von GN⁺

  • eza ist ein moderner Ersatz für ls und bietet mehr Funktionen sowie eine benutzerfreundlichere Oberfläche
  • Es enthält nützliche Funktionen wie verschiedene Farboptionen und die Anzeige des Git-Status
  • Es ist für Windows, macOS und Linux verfügbar, und die Installation ist unkompliziert
  • Es ähnelt ls, bietet aber mehr Optionen, um die Arbeit mit Dateiauflistungen effizienter zu machen
  • Ein Werkzeug mit ähnlicher Funktionalität ist exa

1 Kommentare

 
GN⁺ 2024-07-23
Hacker-News-Kommentare
  • „Human readable dates“ sind unpraktisch. Ich möchte Datum und Uhrzeit in Verzeichnislisten sehen

    • Zum Beispiel möchte ich statt „1 day ago“ eine genaue Zeitangabe
    • Könnte ein Ergebnis von Infinite Scrolling sein
  • Es gibt auch lsd, aber ich bevorzuge eza

    • Empfehlungen für moderne Kommandozeilen-Tools
      • bat - cat mit Hervorhebungsfunktion
      • difftastic - ein besseres diff
      • gdu - Festplattenspeicher-Analysator für SSDs
      • zoxide - modernes cd
      • fd - find-Ersatz
      • rg - ripgrep (grep)
      • fzf - Fuzzy Finder
      • jless - JSON-Viewer mit Mouse-Folding-Funktion
      • dra - Release-Assets herunterladen und installieren
      • lazygit - Git-TUI
      • lazydocker - Docker-TUI
      • yazi - Dateimanager mit Bildvorschau
      • zellij - besseres tmux / screen
      • starship - Shell-Prompt-Konfiguration für mehrere Shells
  • GNU ls wird gepflegt

    • Es gibt aktuelle Commits (2024-06-24, 2024-06-27)
    • Auch die GNU-Coreutils-Mailingliste ist aktiv
  • Nach dem Wechsel zu fish shell ist die Nutzung von ls um 100 % zurückgegangen

    • Mit dem Befehl Alt + l wird der Verzeichnisinhalt angezeigt
    • Sauberere Ergebnisse in der Shell-Historie
  • Ich habe ein Problem mit Terminal-Tools, die Dateitypen per Farbe unterscheiden

    • Ich verwende einen augenfreundlichen Terminal-Hintergrund
    • Farbschemata kollidieren mit dem Hintergrund oder sind schwer lesbar
    • Ich möchte keine Farben in der Ausgabe von ls oder ls-Alternativen
    • Die Ausgabe von ls -AFC reicht aus
  • Ich frage mich, warum neue Versionen von GNU-Utilities unter MIT-Lizenz gebaut werden

  • Ich finde es merkwürdig, dass im README nicht erwähnt wird, dass eza ein Fork von exa ist

  • Auf einer QWERTY-Tastatur ist eza unangenehm zu tippen

    • ls ist eine schnelle Tastenkombination
    • Man kann ein Alias verwenden, aber das wirkt wegen Kompatibilitätsproblemen usw. seltsam
  • Die Hauptfunktion von eza/exa ist nicht die hübsche Farbgebung, sondern die Git-Integration

    • Man kann den Git-Status einzelner Dateien in der Dateiliste sehen (ignoriert, geändert usw.)
  • Fast niemand verwendet ls

    • Per Tab-Vervollständigung werden die benötigten Dateien aufgelistet
    • Ich frage mich, warum behauptet wird, dass ls nicht mehr gepflegt wird