Aller au contenu

Aide-mémoire exa

Aide-mémoire exa

Installation

PlateformeCommande
Ubuntu 20.10+sudo apt update && sudo apt install exa
Debian/Ubuntu (older)cargo install exa
Arch Linuxsudo pacman -S exa
Fedorasudo dnf install exa
RHEL/CentOSsudo dnf install epel-release && sudo dnf install exa
openSUSEsudo 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

CommandeDescription
exaList files in current directory (replaces ls)
exa -lFormat long avec permissions, taille et horodatages
exa -aShow all files including hidden (. files)
exa -laLong format avec tous les fichiers, y compris les fichiers cachés
exa -lhFormat long avec des tailles lisibles par l’homme (KiB, MiB, GiB)
exa -lHLong format avec tailles décimales (KB, MB, GB)
exa -1Un fichier par ligne (utile pour les scripts)
exa -RListage récursif des répertoires
exa -FAjouter des indicateurs de type de fichier (/, @, \
exa --gridDisposition en grille (vue par défaut du terminal)
exa --acrossDisposition de flux horizontal
exa -DLister uniquement les répertoires
exa -fLister uniquement les fichiers (exclure les répertoires)
exa --color=alwaysForcer la sortie en couleur
exa --color=neverDésactiver la sortie couleur

Utilisation avancée

CommandeDescription
exa --treeDisplay directory structure as tree (replaces tree)
exa --tree --level=2Vue arborescente limitée à 2 niveaux de profondeur
exa -l --gitAfficher le statut Git des fichiers (suivis, modifiés, non suivis)
exa --git-ignoreRespect .gitignore and show only tracked files
exa -l --sort=modifiedTrier par date de modification (les plus récents en premier)
exa -l --sort=sizeTrier par taille de fichier (du plus grand au plus petit)
exa -l --sort=extensionTrier par extension de fichier
exa -l --reverseOrdre de tri inversé
exa -l --iconsAfficher les icônes de type de fichier (nécessite Nerd Fonts)
exa -l --extendedAfficher les attributs étendus (SELinux, ACLs)
exa -l@Forme abrégée pour les attributs étendus
exa -liAfficher les numéros d’inode
exa -lsAfficher les tailles de blocs
exa -l --octal-permissionsAfficher les permissions au format octal (755)
exa -l --numericAfficher les ID numériques des utilisateurs/groupes au lieu des noms
exa -l --time-style=isoHorodatages au format ISO
exa -l --time-style=relativeTemps relatif (par exemple, “il y a 2 heures”)
exa -l --modifiedAfficher l’heure de modification (par défaut)
exa -l --accessedAfficher la dernière heure d’accès
exa -l --createdAfficher l’heure de création
exa --ignore-glob="*.tmp"Ignorer les fichiers correspondant au motif
exa -lZAfficher le contexte de sécurité SELinux
exa --tree --git --iconsVue arborescente avec statut Git et icônes
exa -R --level=3Listing 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 lspar exapour 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 $PATH includes /usr/local/bin or ~/.cargo/bin | | Git status not showing | Verify you’re in a Git repository (git status). Use exa -l --git explicitly | | Colors not working in pipes | Use exa --color=always when piping to less or 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. Use sudo exa -l@ or skip with regular exa -l | | Tree view truncated | Increase depth with --level=N or remove limit with no level flag (caution: may be slow on large trees) | | Alias conflicts with system ls | Use \ls to call original ls, or unalias ls temporarily. Check aliases with alias \ | grep ls | | Icons showing as boxes/squares | Terminal doesn’t support Unicode properly. Update terminal emulator or disable icons with --no-icons | | Different output than ls | exa sorts and displays differently by default. Use --sort=name and adjust flags to match ls behavior |- Combiner les options de tri : Chaîner | Drapeau | Description | Exemple de sortie | |------|-------------|----------------| | --modified or -m | Temps de modification (par défaut) | 2024-01-15 14:30 | | --accessed or -u | Dernier temps d’accès | 2024-01-15 09:15 | | --created or -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