Vai al contenuto

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
exa --version

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:

# Add to shell configuration
exa() {
    command exa --icons --group-directories-first "$@"
}

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 lscon exaper 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 $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 |- Combina opzioni di ordinamento: Concatena | Bandiera | Descrizione | Esempio di Output | |------|-------------|----------------| | --modified or -m | Tempo di modifica (predefinito) | 2024-01-15 14:30 | | --accessed or -u | Ultimo tempo di accesso | 2024-01-15 09:15 | | --created or -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