exa Cheatsheet¶
Installazione¶
| Piattaforma | Comando |
|---|---|
| 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 |
Comandi Base¶
| Comando | Descrizione |
|---|---|
exa |
List files in current directory (replaces ls) |
exa -l |
Formato lungo con permessi, dimensione e timestamp |
exa -a |
Show all files including hidden (. files) |
exa -la |
Formato lungo con tutti i file, compresi quelli nascosti |
exa -lh |
Formato lungo con dimensioni leggibili dall'uomo (KiB, MiB, GiB) |
exa -lH |
Formato lungo con dimensioni decimali (KB, MB, GB) |
exa -1 |
Un file per riga (utile per scripting) |
exa -R |
Elenco ricorsivo delle directory |
exa -F |
Aggiungi indicatori del tipo di file (/, @, \ |
exa --grid |
Layout a griglia (vista terminale predefinita) |
exa --across |
Layout a flusso orizzontale |
exa -D |
Elenca solo directory |
exa -f |
Elenca solo i file (escludi le directory) |
exa --color=always |
Forza output a colori |
exa --color=never |
Disabilita output a colori |
| ## Utilizzo Avanzato |
| Comando | Descrizione |
|---|---|
exa --tree |
Display directory structure as tree (replaces tree) |
exa --tree --level=2 |
Visualizzazione ad albero limitata a 2 livelli di profondità |
exa -l --git |
Mostra lo stato di Git per i file (tracciati, modificati, non tracciati) |
exa --git-ignore |
Respect .gitignore and show only tracked files |
exa -l --sort=modified |
Ordina per data di modifica (dal più recente) |
exa -l --sort=size |
Ordina per dimensione del file (dal più grande) |
exa -l --sort=extension |
Ordina per estensione file |
exa -l --reverse |
Ordine di ordinamento inverso |
exa -l --icons |
Visualizza icone dei tipi di file (richiede Nerd Fonts) |
exa -l --extended |
Mostra attributi estesi (SELinux, ACLs) |
exa -l@ |
Abbreviazione per attributi estesi |
exa -li |
Mostra numeri inode |
exa -ls |
Mostra dimensioni dei blocchi |
exa -l --octal-permissions |
Visualizza i permessi in formato ottale (755) |
exa -l --numeric |
Mostra gli ID numerici di utenti/gruppi invece dei nomi |
exa -l --time-style=iso |
Timestamp in formato ISO |
exa -l --time-style=relative |
Tempo relativo (ad es. "2 ore fa") |
exa -l --modified |
Mostra ora di modifica (predefinito) |
exa -l --accessed |
Mostra l'ultimo tempo di accesso |
exa -l --created |
Mostra ora di creazione |
exa --ignore-glob="*.tmp" |
Ignora file che corrispondono al pattern |
exa -lZ |
Mostra contesto di sicurezza SELinux |
exa --tree --git --icons |
Vista ad albero con stato Git e icone |
exa -R --level=3 |
Elenco ricorsivo limitato a 3 livelli |
| ## Configurazione |
Shell Alias¶
Aggiungi questi al tuo ~/.bashrc, ~/.zshrc, o ~/.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'
Personalizzazione Colori¶
Imposta colori personalizzati usando la variabile d'ambiente 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)
Opzioni Predefinite¶
Crea un wrapper di funzione per opzioni predefinite:
Casi d'Uso Comuni¶
Caso d'Uso: Ispezionare Repository 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"
Caso d'Uso: Trovare File di Grandi Dimensioni¶
# 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
Caso d'Uso: Controllare Permessi File¶
# 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
Caso d'Uso: Analizzare Struttura Directory¶
# 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
Caso d'Uso: Navigazione Rapida File¶
# 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
Migliori Pratiche¶
- Usa alias: Configura alias shell per sostituire
lsconexaper un'esperienza coerente nel tuo workflow - Installa Nerd Fonts: Per il supporto completo delle icone, installa un Nerd Font (es. FiraCode Nerd Font, Hack Nerd Font) nel tuo terminale
- Combina con Git: Usa sempre
--gitflag nei repository per vedere lo stato dei file a colpo d'occhio senza eseguiregit status- Sfrutta la vista ad albero: Usaexa --treeinvece di installare separatamentetreecomando, specialmente con--levelper controllare la profonditàEXA_COLORS- Configura i colori: Personalizza--time-style=relativeper abbinare il tuo tema del terminale per una migliore leggibilità--time-style=iso- Usa opzioni di stile temporale: Scegli-1per file recenti o--color=neverper timestamp precisi--git-ignore- Output compatibile con script: Usa--sort(uno per riga) e--reversequando si invia ad altri comandi o scriptexa- Rispetta gitignore: In repository grandi, usaexa -l --git --iconsper evitare di elencare migliaia di artefatti di build o dipendenze | Problema | Soluzione | |-------|----------| | Icons not displaying correctly | Installa un Nerd Font e configura il tuo terminale per utilizzarlo. Scarica da 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 |- Combina opzioni di ordinamento: Concatena | Bandiera | Descrizione | Esempio di Output | |------|-------------|----------------| |--modifiedor-m| Tempo di modifica (predefinito) |2024-01-15 14:30| |--accessedor-u| Ultimo tempo di accesso |2024-01-15 09:15| |--createdor-U| Tempo di creazione |2024-01-10 08:00| |--time-style=iso| Formato ISO |2024-01-15 14:30| |--time-style=long-iso| Formato ISO lungo |2024-01-15 14:30:45| |--time-style=full-iso| Full ISO con timezone |2024-01-15 14:30:45.123456789 +0000| |--time-style=relative| Tempo relativo |2 hours ago|con | Chiave di Ordinamento | Descrizione | Utilizzo | |----------|-------------|-------| |name| In ordine alfabetico per nome (predefinito) |exa -l --sort=name| |size| Dimensione del file |exa -l --sort=size| |extension| Estensione file |exa -l --sort=extension| |modified| Tempo di modifica |exa -l --sort=modified| |accessed| Tempo di accesso |exa -l --sort=accessed| |created| Tempo di creazione |exa -l --sort=created| |type| Tipo di file (dir, file, link) |exa -l --sort=type| |inode| Numero inode |exa -l --sort=inode| |oldest| Dal più vecchio al più recente (modificato in ordine inverso) |exa -l --sort=oldest|per ottenere esattamente l'ordine desiderato (più recenti, più grandi, ecc.)--reverse- Prestazioni in directory grandi: Per directory con migliaia di file, base