Aide-mémoire exa
Aide-mémoire exa
Installation
| Plateforme | Commande |
|---|---|
| Ubuntu 20.10+ | sudo apt update && sudo apt install exa |
| Debian/Ubuntu (older) | cargo install exa |
| Arch Linux | sudo pacman -S exa |
| Fedora | sudo dnf install exa |
| RHEL/CentOS | sudo dnf install epel-release && sudo dnf install exa |
| openSUSE | sudo zypper install exa |
| macOS (Homebrew) | brew install exa |
| macOS (MacPorts) | sudo port install exa |
| Windows (Scoop) | scoop install exa |
| Universal (Cargo) | cargo install exa |
exa --version
Commandes de base
| Commande | Description |
|---|---|
exa | List files in current directory (replaces ls) |
exa -l | Format long avec permissions, taille et horodatages |
exa -a | Show all files including hidden (. files) |
exa -la | Long format avec tous les fichiers, y compris les fichiers cachés |
exa -lh | Format long avec des tailles lisibles par l’homme (KiB, MiB, GiB) |
exa -lH | Long format avec tailles décimales (KB, MB, GB) |
exa -1 | Un fichier par ligne (utile pour les scripts) |
exa -R | Listage récursif des répertoires |
exa -F | Ajouter des indicateurs de type de fichier (/, @, \ |
exa --grid | Disposition en grille (vue par défaut du terminal) |
exa --across | Disposition de flux horizontal |
exa -D | Lister uniquement les répertoires |
exa -f | Lister uniquement les fichiers (exclure les répertoires) |
exa --color=always | Forcer la sortie en couleur |
exa --color=never | Désactiver la sortie couleur |
Utilisation avancée
| Commande | Description |
|---|---|
exa --tree | Display directory structure as tree (replaces tree) |
exa --tree --level=2 | Vue arborescente limitée à 2 niveaux de profondeur |
exa -l --git | Afficher le statut Git des fichiers (suivis, modifiés, non suivis) |
exa --git-ignore | Respect .gitignore and show only tracked files |
exa -l --sort=modified | Trier par date de modification (les plus récents en premier) |
exa -l --sort=size | Trier par taille de fichier (du plus grand au plus petit) |
exa -l --sort=extension | Trier par extension de fichier |
exa -l --reverse | Ordre de tri inversé |
exa -l --icons | Afficher les icônes de type de fichier (nécessite Nerd Fonts) |
exa -l --extended | Afficher les attributs étendus (SELinux, ACLs) |
exa -l@ | Forme abrégée pour les attributs étendus |
exa -li | Afficher les numéros d’inode |
exa -ls | Afficher les tailles de blocs |
exa -l --octal-permissions | Afficher les permissions au format octal (755) |
exa -l --numeric | Afficher les ID numériques des utilisateurs/groupes au lieu des noms |
exa -l --time-style=iso | Horodatages au format ISO |
exa -l --time-style=relative | Temps relatif (par exemple, “il y a 2 heures”) |
exa -l --modified | Afficher l’heure de modification (par défaut) |
exa -l --accessed | Afficher la dernière heure d’accès |
exa -l --created | Afficher l’heure de création |
exa --ignore-glob="*.tmp" | Ignorer les fichiers correspondant au motif |
exa -lZ | Afficher le contexte de sécurité SELinux |
exa --tree --git --icons | Vue arborescente avec statut Git et icônes |
exa -R --level=3 | Listing récursif limité à 3 niveaux |
Configuration
Alias Shell
Ajoutez ces lignes à votre ~/.bashrc, ~/.zshrc, ou ~/.config/fish/config.fish:
# Basic replacements
alias ls='exa'
alias l='exa -l'
alias la='exa -la'
alias ll='exa -l'
alias lt='exa --tree'
# Advanced aliases
alias lg='exa -l --git'
alias lgi='exa -l --git --git-ignore'
alias lt2='exa --tree --level=2'
alias lta='exa -la --tree'
# Comprehensive view
alias lx='exa -lah --git --icons --group --time-style=long-iso'
# Sorting shortcuts
alias lm='exa -l --sort=modified --reverse' # Most recent first
alias lz='exa -l --sort=size --reverse' # Largest first
# Tree with Git
alias ltg='exa --tree --git --level=3'
Personnalisation des couleurs
Définissez des couleurs personnalisées en utilisant la variable d’environnement EXA_COLORS:
# Add to ~/.bashrc or ~/.zshrc
export EXA_COLORS="da=38;5;245:sb=38;5;204:sn=38;5;43:uu=38;5;245:un=38;5;241"
# Color codes:
# da = date
# sb = file size
# sn = size number
# uu = user (you)
# un = user (other)
# gu = group (you)
# gn = group (other)
Options par défaut
Créez un wrapper de fonction pour les options par défaut :
# Add to shell configuration
exa() {
command exa --icons --group-directories-first "$@"
}
Cas d’utilisation courants
Cas d’utilisation : Inspection d’un dépôt Git
# Show all files with Git status and icons
exa -la --git --icons
# Tree view of repository with Git status (ignore node_modules)
exa --tree --git --ignore-glob="node_modules|.git" --level=3
# Only show modified files
exa -l --git | grep -E "M|A|D"
Cas d’utilisation : Recherche de fichiers volumineux
# List files by size, largest first
exa -l --sort=size --reverse
# Recursive search for large files with human-readable sizes
exa -lRh --sort=size --reverse | head -20
# Show only files (no directories) sorted by size
exa -lf --sort=size --reverse
Cas d’utilisation : Audit des permissions de fichiers
# Show permissions in octal format with extended attributes
exa -l@ --octal-permissions
# Show all permission details with numeric IDs
exa -la --numeric --octal-permissions
# Check SELinux contexts
exa -lZ /var/www/html
Cas d’utilisation : Analyse de la structure des répertoires
# Tree view with file sizes and modification times
exa -l --tree --level=3 --time-style=iso
# Show directory structure with Git awareness
exa --tree --git --icons --level=4 --ignore-glob=".git"
# List only directories in tree format
exa -D --tree --level=2
Cas d’utilisation : Navigation rapide de fichiers
# Grid view with icons for visual scanning
exa --icons --grid
# Long format with all metadata
exa -lah --icons --git --time-style=relative
# Show recent changes (last 24 hours)
exa -l --sort=modified --reverse --time-style=relative | head -20
Meilleures pratiques
- Utilisez des alias : Configurez des alias shell pour remplacer
lsparexapour une expérience cohérente dans votre workflow - Installez Nerd Fonts : Pour un support complet des icônes, installez une Nerd Font (par exemple, FiraCode Nerd Font, Hack Nerd Font) dans votre terminal
- Combinez avec Git : Utilisez toujours
--gitindicateur dans les dépôts pour voir l’état des fichiers d’un coup d’œil sans exécutergit status- Exploiter la vue arborescente : Utiliserexa --treeau lieu d’installer séparémenttreecommande, en particulier avec--levelpour contrôler la profondeurEXA_COLORS- Configurer les couleurs : Personnaliser--time-style=relativepour correspondre à votre thème de terminal pour une meilleure lisibilité--time-style=iso- Utiliser les options de style de temps : Choisir-1pour les fichiers récents ou--color=neverpour des horodatages précis--git-ignore- Sortie adaptée aux scripts : Utiliser--sort(un par ligne) et--reverselors de la redirection vers d’autres commandes ou scriptsexa- Respecter gitignore : Dans les grands dépôts, utiliserexa -l --git --iconspour éviter de lister des milliers d’artefacts de build ou de dépendances | Problème | Solution | |-------|----------| | Icons not displaying correctly | Installez une Nerd Font et configurez votre terminal pour l’utiliser. Téléchargez depuis nerdfonts.com | |exa: command not found| Ensure installation completed successfully. Check$PATHincludes/usr/local/binor~/.cargo/bin| | Git status not showing | Verify you’re in a Git repository (git status). Useexa -l --gitexplicitly | | Colors not working in pipes | Useexa --color=alwayswhen piping tolessor other commands:exa --color=always \ | less -R| | Slow performance on network drives | Disable Git integration (--no-git) and avoid extended attributes (--no-extended) on slow filesystems | | Permission denied errors | Some extended attributes require elevated privileges. Usesudo exa -l@or skip with regularexa -l| | Tree view truncated | Increase depth with--level=Nor remove limit with no level flag (caution: may be slow on large trees) | | Alias conflicts with systemls| Use\lsto call originalls, orunalias lstemporarily. Check aliases withalias \ | grep ls| | Icons showing as boxes/squares | Terminal doesn’t support Unicode properly. Update terminal emulator or disable icons with--no-icons| | Different output thanls|exasorts and displays differently by default. Use--sort=nameand adjust flags to matchlsbehavior |- Combiner les options de tri : Chaîner | Drapeau | Description | Exemple de sortie | |------|-------------|----------------| |--modifiedor-m| Temps de modification (par défaut) |2024-01-15 14:30| |--accessedor-u| Dernier temps d’accès |2024-01-15 09:15| |--createdor-U| Temps de création |2024-01-10 08:00| |--time-style=iso| Format ISO |2024-01-15 14:30| |--time-style=long-iso| Format ISO long |2024-01-15 14:30:45| |--time-style=full-iso| Full ISO avec fuseau horaire |2024-01-15 14:30:45.123456789 +0000| |--time-style=relative| Temps relatif |2 hours ago|avec | Clé de tri | Description | Utilisation | |----------|-------------|-------| |name| Par ordre alphabétique (par défaut) |exa -l --sort=name| |size| Taille du fichier |exa -l --sort=size| |extension| Extension de fichier |exa -l --sort=extension| |modified| Temps de modification |exa -l --sort=modified| |accessed| Temps d’accès |exa -l --sort=accessed| |created| Temps de création |exa -l --sort=created| |type| Type de fichier (dir, file, link) |exa -l --sort=type| |inode| Numéro d’inode |exa -l --sort=inode| |oldest| Les plus anciens en premier (ordre modifié inversé) |exa -l --sort=oldest|pour obtenir exactement l’ordre souhaité (le plus récent, le plus volumineux, etc.)--reverse- Performance dans les grands répertoires : Pour les répertoires avec des milliers de fichiers, le basic