Salta ai contenuti

exa Cheatsheet

exa Cheatsheet

Installazione

PiattaformaComando
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

Comandi Base

ComandoDescrizione
exaList files in current directory (replaces ls)
exa -lFormato lungo con permessi, dimensione e timestamp
exa -aShow all files including hidden (. files)
exa -laFormato lungo con tutti i file, compresi quelli nascosti
exa -lhFormato lungo con dimensioni leggibili dall’uomo (KiB, MiB, GiB)
exa -lHFormato lungo con dimensioni decimali (KB, MB, GB)
exa -1Un file per riga (utile per scripting)
exa -RElenco ricorsivo delle directory
exa -FAggiungi indicatori del tipo di file (/, @, \
exa --gridLayout a griglia (vista terminale predefinita)
exa --acrossLayout a flusso orizzontale
exa -DElenca solo directory
exa -fElenca solo i file (escludi le directory)
exa --color=alwaysForza output a colori
exa --color=neverDisabilita output a colori

Utilizzo Avanzato

ComandoDescrizione
exa --treeDisplay directory structure as tree (replaces tree)
exa --tree --level=2Visualizzazione ad albero limitata a 2 livelli di profondità
exa -l --gitMostra lo stato di Git per i file (tracciati, modificati, non tracciati)
exa --git-ignoreRespect .gitignore and show only tracked files
exa -l --sort=modifiedOrdina per data di modifica (dal più recente)
exa -l --sort=sizeOrdina per dimensione del file (dal più grande)
exa -l --sort=extensionOrdina per estensione file
exa -l --reverseOrdine di ordinamento inverso
exa -l --iconsVisualizza icone dei tipi di file (richiede Nerd Fonts)
exa -l --extendedMostra attributi estesi (SELinux, ACLs)
exa -l@Abbreviazione per attributi estesi
exa -liMostra numeri inode
exa -lsMostra dimensioni dei blocchi
exa -l --octal-permissionsVisualizza i permessi in formato ottale (755)
exa -l --numericMostra gli ID numerici di utenti/gruppi invece dei nomi
exa -l --time-style=isoTimestamp in formato ISO
exa -l --time-style=relativeTempo relativo (ad es. “2 ore fa”)
exa -l --modifiedMostra ora di modifica (predefinito)
exa -l --accessedMostra l’ultimo tempo di accesso
exa -l --createdMostra ora di creazione
exa --ignore-glob="*.tmp"Ignora file che corrispondono al pattern
exa -lZMostra contesto di sicurezza SELinux
exa --tree --git --iconsVista ad albero con stato Git e icone
exa -R --level=3Elenco 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