Aller au contenu
Outils medium

eza : ls en couleurs avec Git et icônes

16 min de lecture

logo eza

eza est un remplaçant moderne de ls, écrit en Rust : couleurs par type, statut Git, icônes et dates relatives, le tout en une commande. Il liste vos fichiers de façon plus lisible et plus rapide, même sur des dossiers contenant des milliers d'entrées.

Ce guide s'adresse à toute personne qui vit dans le terminal. Vous allez installer eza, découvrir les commandes du quotidien, afficher le statut Git, l'arborescence et les dates relatives, puis créer des alias pour remplacer ls définitivement.

  • Installer eza sur Linux, macOS ou via Cargo.
  • Lister vos fichiers avec couleurs, tailles lisibles et dates.
  • Afficher le statut Git et l'arborescence d'un projet.
  • Trier et filtrer par date, taille ou type d'entrée.
  • Créer des alias pour remplacer ls au quotidien.

Vous tapez ls -la dans un dossier avec 50 fichiers. Tout est blanc sur noir. Vous cherchez un fichier modifié récemment, mais impossible de distinguer les dates. Vous voulez voir si un fichier est suivi par Git, mais il faut lancer git status à part.

eza résout ce problème en une commande.

Les dossiers sont en bleu, les exécutables en vert, les fichiers ignorés par Git sont grisés. Vous voyez immédiatement ce qui vous intéresse.

Le tableau ci-dessous compare des fonctions d'affichage, pas des performances. Deux lignes justifient à elles seules le remplacement au quotidien : le statut Git intégré, qui évite l'aller-retour vers git status, et les dates relatives, qui répondent à la question réellement posée (« qu'est-ce qui a bougé récemment ? ») au lieu d'une date brute à convertir mentalement.

Fonctionnalitélseza
Couleurs par typeBasiqueComplet (images, archives, code...)
IcônesNonOui, avec Nerd Fonts
Statut GitNonOui (M = modifié, I = ignoré)
Dates relativesNonOui ("3 hours", "1 week")
ArborescenceNonOui (eza -T)
HyperlinksNonOui (Ctrl+clic ouvre le fichier)

eza est écrit en Rust. Il est rapide, même sur des dossiers avec des milliers de fichiers.

Le paquet est disponible directement dans les dépôts de Fedora, Arch et Homebrew. Sur Debian et Ubuntu, eza n'est pas dans les dépôts officiels : la procédure ci-dessous ajoute le dépôt tiers signé maintenu par le projet, avec sa clé publique déposée dans /etc/apt/keyrings/. C'est la méthode recommandée par eza, et elle a l'avantage de rendre les mises à jour automatiques via apt upgrade. Si vous préférez ne pas ajouter de dépôt tiers, l'onglet Cargo compile depuis les sources.

Fenêtre de terminal
# Ajouter le dépôt
sudo mkdir -p /etc/apt/keyrings
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
# Installer
sudo apt update && sudo apt install -y eza
# Vérifier
eza --version

Ouvrez un terminal et tapez :

Fenêtre de terminal
eza -la

Vous voyez quelque chose comme :

drwxrwxr-x - bob 30 Jan 14:06 .astro
.rw-rw-r-- 1.3k bob 24 Jan 19:09 .envrc
drwxr-xr-x - bob 13 Jan 16:17 .github
.rw-rw-r-- 3.7k bob 24 Jan 19:12 .gitignore
.rw-rw-r-- 238k bob 30 Jan 09:19 astro.config.mjs
drwxr-xr-x - bob 27 Jan 18:55 src

Le contenu correspond à celui de ls -la, avec trois différences visibles. Les dossiers apparaissent en bleu et les fichiers en blanc. Les tailles sont exprimées en unités lisibles sans avoir à demander -h (1.3k plutôt que 1342). Enfin, la colonne des permissions remplace le premier caractère de ls par un point pour les fichiers ordinaires, ce qui rend les répertoires plus faciles à repérer en balayant la colonne.

Vous travaillez dans un repo Git et voulez voir quels fichiers sont modifiés, ajoutés ou ignorés.

Ce que vous faites :

Fenêtre de terminal
eza -la --git
drwxrwxr-x - bob 30 Jan 14:06 -I .astro
.rw-rw-r-- 1.3k bob 24 Jan 19:09 -I .envrc
drwxr-xr-x - bob 13 Jan 16:17 -- .github
.rw-rw-r-- 3.7k bob 24 Jan 19:12 -M .gitignore
.rw-rw-r-- 238k bob 30 Jan 09:19 -- astro.config.mjs

La colonne Git affiche :

CodeSignification
--Non modifié (suivi par Git, propre)
-MModifié (pas encore commité)
-NNouveau fichier (pas encore ajouté)
-IIgnoré (dans .gitignore)

Situation 2 : "Je veux voir l'arborescence d'un projet"

Section intitulée « Situation 2 : "Je veux voir l'arborescence d'un projet" »

Vous découvrez un nouveau projet et voulez voir sa structure.

Ce que vous faites :

Fenêtre de terminal
eza -T --level=2
.
├── docs
│ └── MIGRATION-GLOSSARY-FINAL-REPORT.md
├── public
│ ├── images
│ └── robots.txt
├── src
│ ├── assets
│ ├── components
│ └── content
└── package.json

--level=2 limite la profondeur à 2 niveaux. Sans cette option, vous verriez l'arborescence complète (potentiellement très longue).

Situation 3 : "Je veux trouver les fichiers récents"

Section intitulée « Situation 3 : "Je veux trouver les fichiers récents" »

Vous cherchez ce que vous avez modifié cette semaine.

Ce que vous faites :

Fenêtre de terminal
eza -l --time-style=relative --sort=modified
.rw-rw-r-- 65 bob 3 weeks commitlint.config.js
.rw-rw-r-- 11k bob 3 weeks LICENSE
.rw-rw-r-- 16k bob 1 day GUIDE-COMMAND-TRAINING-COMPONENTS.md
.rw-rw-r-- 238k bob 4 hours astro.config.mjs
drwxrwxr-x - bob 2 minutes dist

Les fichiers les plus récents sont en bas. "4 hours", "2 minutes", vous voyez immédiatement l'activité récente.

Situation 4 : "Je veux lister uniquement les dossiers"

Section intitulée « Situation 4 : "Je veux lister uniquement les dossiers" »

Vous cherchez un dossier spécifique dans un projet avec beaucoup de fichiers.

Ce que vous faites :

Fenêtre de terminal
eza -D
dist docs new node_modules public scripts secrets src src-schema todo

-D filtre pour n'afficher que les dossiers. Utile quand vous naviguez dans un projet.

Les quatre tableaux ci-dessous regroupent les options par intention : ce qui change la forme de la sortie, ce qui ajoute des colonnes, ce qui sélectionne les entrées, et ce qui règle le format des dates. Elles se combinent librement, eza --help affiche la liste complète.

Ces cinq options déterminent la disposition. Un point non évident : par défaut, eza affiche en grille multi-colonnes, pas en liste. -l bascule en mode table détaillée, -1 en liste simple, ce qui est la forme à utiliser quand la sortie est destinée à un autre programme.

OptionCe que ça fait
-lListe longue (permissions, taille, date)
-aAffiche les fichiers cachés
-1Une entrée par ligne
-TArborescence (tree)
-RRécursif (descend dans les dossiers)

Ces options ajoutent une colonne et n'ont d'effet qu'en mode long (-l), sauf --icons. --header mérite d'être activé le temps de mémoriser l'ordre des colonnes, il nomme chacune d'elles en première ligne. --git a un coût : il interroge le dépôt à chaque appel, ce qui se ressent sur un très gros dépôt.

OptionCe que ça fait
--gitAffiche le statut Git
--iconsAffiche les icônes (nécessite Nerd Fonts)
--headerAjoute une ligne d'en-tête
--hyperlinkRend les fichiers cliquables

Le tri par défaut se fait sur le nom. --sort accepte notamment name, extension, size, type, created, modified, accessed, changed, inode et none ; ajoutez -r pour inverser l'ordre. Attention à --git-ignore, qui masque les fichiers listés dans .gitignore : pratique pour retrouver son code au milieu d'un node_modules, trompeur si vous cherchez justement un artefact de build.

OptionCe que ça fait
--sort=sizeTrie par taille
--sort=modifiedTrie par date de modification
--group-directories-firstDossiers en premier
-DUniquement les dossiers
-fUniquement les fichiers
--git-ignoreIgnore les fichiers du .gitignore

Choisissez selon l'usage : relative pour lire une activité d'un coup d'oeil, long-iso ou full-iso dès qu'il faut comparer ou trier des dates précises. Deux valeurs supplémentaires existent au-delà du tableau : full-iso, qui ajoute les secondes et le fuseau, et un format libre au moyen d'un préfixe +, par exemple --time-style='+%Y-%m-%d %H:%M'.

OptionExemple
--time-style=default"30 Jan 14:06"
--time-style=relative"4 hours", "3 weeks"
--time-style=iso"2026-01-30"
--time-style=long-iso"2026-01-30 14:06"

Ajoutez dans votre ~/.bashrc ou ~/.zshrc :

Fenêtre de terminal
# Alias de base
alias ls='eza'
alias ll='eza -la --git --group-directories-first'
alias lt='eza -T --level=2'
alias lr='eza -la --sort=modified --time-style=relative'

Rechargez votre shell :

Fenêtre de terminal
exec $SHELL

Maintenant :

  • ls → eza avec couleurs
  • ll → liste complète avec Git
  • lt → arborescence
  • lr → fichiers récents

Pour afficher les icônes de fichiers, vous devez utiliser une police Nerd Font dans votre terminal.

  1. Téléchargez une Nerd Font

    Allez sur nerdfonts.com et téléchargez une police. Recommandations :

    • FiraCode Nerd Font, populaire, lisible
    • JetBrainsMono Nerd Font, moderne, propre
    • Hack Nerd Font, classique
  2. Installez la police

    • Linux : Copiez les fichiers .ttf dans ~/.local/share/fonts/ puis fc-cache -fv
    • macOS : Double-cliquez sur le fichier .ttf
    • Windows : Clic droit → Installer
  3. Configurez votre terminal

    Dans les paramètres de votre terminal (GNOME Terminal, iTerm2, Windows Terminal...), sélectionnez la Nerd Font que vous avez installée.

  4. Testez

    Fenêtre de terminal
    eza --icons

    Chaque nom de fichier est précédé d'un pictogramme : un dossier pour les répertoires, le logo du langage pour les fichiers de code (Python, JavaScript, Rust...), une icône d'archive pour les .tar.gz, et ainsi de suite. Si vous voyez des carrés vides ou des points d'interrogation, la police n'est pas celle que vous croyez.

eza supporte les thèmes via un fichier YAML. Le fichier est cherché dans le répertoire de configuration, ~/.config/eza/ par défaut, ou celui désigné par la variable EZA_CONFIG_DIR. Un thème n'est pas obligatoire : il sert à harmoniser les couleurs avec celles de votre terminal, en particulier sur les thèmes clairs où le gris par défaut des fichiers ignorés devient illisible.

Créez ~/.config/eza/theme.yml :

~/.config/eza/theme.yml
# Couleurs des permissions
filekinds:
directory:
foreground: Blue
executable:
foreground: Green
symlink:
foreground: Cyan
# Couleurs des tailles
size:
number:
foreground: Yellow
unit:
foreground: Yellow
# Couleurs Git
git:
modified:
foreground: Yellow
ignored:
foreground: BrightBlack

Les couleurs disponibles : Black, Red, Green, Yellow, Blue, Purple, Cyan, White (et leurs variantes Bright).

Ce tableau sert de table de conversion pour les réflexes acquis avec ls. Notez l'absence de -h : eza affiche les tailles en unités lisibles par défaut, et -h y désigne autre chose. Notez aussi que ls -lt ne se traduit pas par eza -lt mais par eza -l --sort=modified.

Commande lsÉquivalent eza
ls -laeza -la
ls -lheza -l (human-readable par défaut)
ls -lteza -l --sort=modified
ls -lSeza -l --sort=size
ls -lReza -lR ou eza -T
ls --color=autoeza (couleurs par défaut)

Les couleurs ne s'affichent pas :

Vérifiez votre variable TERM :

Fenêtre de terminal
echo $TERM

Elle devrait être xterm-256color ou similaire. Si ce n'est pas le cas, ajoutez à votre ~/.bashrc :

Fenêtre de terminal
export TERM=xterm-256color

Les icônes s'affichent mal :

Votre terminal n'utilise pas une Nerd Font. Voir la section "Icônes avec Nerd Fonts".

eza est lent sur certains dossiers :

Si le dossier est dans un repo Git avec beaucoup de fichiers, --git peut être lent. Utilisez --no-git pour désactiver.

Fenêtre de terminal
eza -la --no-git /chemin/vers/gros/repo

Une option est refusée alors qu'elle figure dans ce guide :

Certaines options sont arrivées au fil des versions. Commencez par afficher la liste réellement supportée par votre binaire, elle fait autorité sur n'importe quelle documentation :

Fenêtre de terminal
eza --version
eza --help

Ne vous fiez pas au numéro pour juger de l'ancienneté : eza étant un fork d'exa, sa numérotation commence à 0.10.x. Une version 0.x n'a donc rien d'un logiciel abandonné. Comparez plutôt avec la dernière version publiée sur le dépôt du projet.

Les questions ci-dessous complètent le guide sur les points qui reviennent le plus souvent : ce qu'est eza exactement, s'il remplace vraiment ls, sa filiation avec exa et la mise en place des icônes.

  1. eza -la remplace ls -la avec des couleurs
  2. --git affiche le statut Git de chaque fichier
  3. --icons affiche les icônes (nécessite Nerd Fonts)
  4. -T affiche l'arborescence (comme tree)
  5. --time-style=relative affiche "3 hours" au lieu de "30 Jan 14:06"
  6. --group-directories-first met les dossiers en haut
  7. Créez des alias pour ne plus jamais taper les options

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn