3 points par GN⁺ 2024-07-23 | 1 commentaires | Partager sur WhatsApp

eza

Présentation de eza

  • eza est un remplaçant moderne de la commande de liste de fichiers ls, fournie par défaut sur les systèmes Unix et Linux
  • Utilise des couleurs pour distinguer les types de fichiers et les métadonnées
  • Prend en charge les liens symboliques, les attributs étendus et Git
  • Petit, rapide et distribué sous la forme d’un binaire unique
  • Vise à offrir une alternative à ls à la fois conviviale et riche en fonctionnalités

Principales fonctionnalités de eza

  • Correction du « bug de grille » apparu dans exa 2021
  • Prise en charge des hyperliens
  • Fournit des détails sur les points de montage
  • Affiche les contextes Selinux
  • Affiche l’état des dépôts Git
  • Affiche des dates relatives lisibles par l’humain
  • Plusieurs correctifs de sécurité
  • Prise en charge des couleurs pour les terminaux clairs
  • Divers petits correctifs de bugs et changements

Méthode d’installation

  • eza est disponible sur Windows, macOS et Linux
  • Les instructions d’installation selon la plateforme et la distribution sont disponibles dans INSTALL.md

Options en ligne de commande

Options d’affichage

  • -1, --oneline : affiche un élément par ligne
  • -G, --grid : affiche les éléments sous forme de grille (par défaut)
  • -l, --long : affiche les détails étendus et les attributs
  • -R, --recurse : parcourt les répertoires récursivement
  • -T, --tree : parcourt les répertoires récursivement sous forme d’arborescence
  • -x, --across : aligne la grille horizontalement
  • -F, --classify=(when) : indique le type après le nom du fichier (always, auto, never)
  • --colo[u]r=(when) : définit quand utiliser les couleurs du terminal (always, auto, never)
  • --colo[u]r-scale=(field) : met en évidence en distinguant les niveaux de field (all, age, size)
  • --color-scale-mode=(mode) : utilise des couleurs fixes ou un dégradé avec --color-scale (fixed, gradient)
  • --icons=(when) : définit quand afficher les icônes (always, auto, never)
  • --hyperlink : affiche les éléments sous forme d’hyperliens
  • --absolute=(mode) : affiche les éléments avec des chemins absolus (on, follow, off)
  • -w, --width=(columns) : définit la largeur d’affichage en colonnes

Options de filtrage

  • -a, --all : affiche les fichiers cachés et les fichiers pointés
  • -d, --list-dirs : liste les répertoires comme des fichiers ordinaires
  • -L, --level=(depth) : limite la profondeur de récursion
  • -r, --reverse : inverse l’ordre de tri
  • -s, --sort=(field) : définit le champ de tri
  • --group-directories-first : liste les répertoires avant les autres fichiers
  • -D, --only-dirs : liste uniquement les répertoires
  • -f, --only-files : liste uniquement les fichiers
  • --no-symlinks : n’affiche pas les liens symboliques
  • --show-symlinks : affiche explicitement les liens symboliques
  • --git-ignore : ignore les fichiers mentionnés dans .gitignore
  • -I, --ignore-glob=(globs) : définit les motifs glob des fichiers à ignorer

Options de vue longue

  • -b, --binary : affiche les tailles de fichiers avec des préfixes binaires
  • -B, --bytes : affiche les tailles de fichiers en octets
  • -g, --group : affiche le groupe de chaque fichier
  • -h, --header : ajoute une ligne d’en-tête à chaque colonne
  • -H, --links : affiche le nombre de liens physiques de chaque fichier
  • -i, --inode : affiche le numéro d’inode de chaque fichier
  • -m, --modified : utilise le champ d’horodatage de modification
  • -M, --mounts : affiche les détails des montages (Linux et macOS uniquement)
  • -S, --blocksize : affiche la taille des blocs du système de fichiers alloués
  • -t, --time=(field) : définit le champ d’horodatage à utiliser
  • -u, --accessed : utilise le champ d’horodatage d’accès
  • -U, --created : utilise le champ d’horodatage de création
  • -X, --dereference : déréférence les liens symboliques pour les informations de fichier
  • -Z, --context : affiche le contexte de sécurité de chaque fichier
  • -@, --extended : affiche les attributs étendus et la taille de chaque fichier
  • --changed : utilise le champ d’horodatage de changement
  • --git : affiche l’état Git de chaque fichier
  • --git-repos : affiche l’état Git de chaque répertoire
  • --git-repos-no-status : indique seulement si le répertoire est un dépôt Git (plus rapide)
  • --no-git : n’affiche pas l’état Git
  • --time-style : définit le format des horodatages
  • --total-size : affiche la taille récursive des répertoires
  • --no-permissions : n’affiche pas le champ des permissions
  • -o, --octal-permissions : affiche les permissions de chaque fichier au format octal
  • --no-filesize : n’affiche pas le champ de taille de fichier
  • --no-user : n’affiche pas le champ utilisateur
  • --no-time : n’affiche pas le champ horaire
  • --stdin : lit les noms de fichiers depuis stdin

Comment contribuer à eza

  • Pour contribuer à eza, il faut d’abord suivre le code de conduite
  • Une fois le code de conduite compris, consultez CONTRIBUTING.md pour obtenir des informations sur la contribution concrète au projet

Résumé de GN⁺

  • eza est un remplaçant moderne de ls, offrant davantage de fonctionnalités et une interface plus conviviale
  • Il inclut des fonctions utiles comme diverses options de couleur et l’affichage de l’état Git
  • Il est disponible sur Windows, macOS et Linux, avec une installation simple
  • Semblable à ls, mais avec davantage d’options pour rendre les opérations de listage de fichiers plus efficaces
  • Un outil similaire offrant des fonctions proches est exa

1 commentaires

 
GN⁺ 2024-07-23
Avis Hacker News
  • Les « human readable dates » sont gênantes. Je veux voir la date et l’heure dans la liste des répertoires

    • Par exemple, je préfère afficher l’heure exacte plutôt que « il y a 1 jour »
    • C’est peut-être une conséquence du défilement infini
  • Il y a aussi lsd, mais je préfère eza

    • Recommandations d’outils en ligne de commande modernes
      • bat - un cat avec coloration syntaxique
      • difftastic - un meilleur diff
      • gdu - analyseur d’espace disque pour SSD
      • zoxide - un cd moderne
      • fd - remplaçant de find
      • rg - ripgrep (grep)
      • fzf - chercheur flou
      • jless - visualiseur JSON avec repliage à la souris
      • dra - téléchargement et installation d’assets de release
      • lazygit - TUI Git
      • lazydocker - TUI Docker
      • yazi - gestionnaire de fichiers avec prévisualisation d’images
      • zellij - un meilleur tmux / screen
      • starship - configuration d’invite cross-shell
  • GNU ls est bien maintenu

    • Il y a des commits récents (2024-06-24, 2024-06-27)
    • La mailing list de GNU Coreutils est aussi active
  • Depuis le passage à fish shell, mon usage de ls a baissé de 100 %

    • La commande Alt + l affiche le contenu du répertoire
    • Le résultat dans l’historique du shell est plus propre
  • J’ai un problème avec les outils de terminal qui utilisent les couleurs pour distinguer les types de fichiers

    • J’utilise un fond de terminal agréable pour les yeux
    • Les schémas de couleurs entrent en conflit avec le fond ou sont difficiles à lire
    • Je ne veux pas de couleurs dans la sortie de ls ou d’un remplaçant de ls
    • La sortie de ls -AFC me suffit
  • Je me demande pourquoi les nouvelles versions des utilitaires GNU sont compilées sous licence MIT

  • Je trouve étrange que le README ne mentionne pas que eza est un fork de exa

  • Taper eza sur un clavier qwerty est inconfortable

    • ls est une combinaison de touches rapide
    • On peut utiliser un alias, mais cela paraît étrange à cause de problèmes de compatibilité, etc.
  • La fonctionnalité principale de eza/exa, ce ne sont pas les jolies couleurs, mais l’intégration Git

    • On peut voir l’état Git de chaque fichier dans la liste (ignoré, modifié, etc.)
  • Presque personne n’utilise ls

    • On liste les fichiers nécessaires avec l’autocomplétion
    • Je me demande pourquoi certains affirment que ls n’est plus maintenu