Hoja de referencia de exa
Instalación
| Platform | 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
Comandos básicos
| Comando | Descripción |
|---|
exa | List files in current directory (replaces ls) |
exa -l | Formato largo con permisos, tamaño y marcas de tiempo |
exa -a | Show all files including hidden (. files) |
exa -la | Formato largo con todos los archivos, incluyendo ocultos |
exa -lh | Formato largo con tamaños legibles para humanos (KiB, MiB, GiB) |
exa -lH | Formato largo con tamaños decimales (KB, MB, GB) |
exa -1 | Un archivo por línea (útil para scripting) |
exa -R | Listado recursivo de directorios |
exa -F | Agregar indicadores de tipo de archivo (/, @, \ |
exa --grid | Diseño de cuadrícula (vista de terminal predeterminada) |
exa --across | Diseño de flujo horizontal |
exa -D | Listar solo directorios |
exa -f | Listar solo archivos (excluir directorios) |
exa --color=always | Forzar salida de color |
exa --color=never | Deshabilitar salida de color |
Uso avanzado
| Comando | Descripción |
|---|
exa --tree | Display directory structure as tree (replaces tree) |
exa --tree --level=2 | Vista de árbol limitada a 2 niveles de profundidad |
exa -l --git | Mostrar estado de Git para archivos (rastreados, modificados, sin rastrear) |
exa --git-ignore | Respect .gitignore and show only tracked files |
exa -l --sort=modified | Ordenar por tiempo de modificación (más reciente primero) |
exa -l --sort=size | Ordenar por tamaño de archivo (de mayor a menor) |
exa -l --sort=extension | Ordenar por extensión de archivo |
exa -l --reverse | Orden de clasificación inverso |
exa -l --icons | Mostrar iconos de tipos de archivo (requiere Nerd Fonts) |
exa -l --extended | Mostrar atributos extendidos (SELinux, ACLs) |
exa -l@ | Forma abreviada para atributos extendidos |
exa -li | Mostrar números de inode |
exa -ls | Mostrar tamaños de bloque |
exa -l --octal-permissions | Mostrar permisos en formato octal (755) |
exa -l --numeric | Mostrar IDs numéricos de usuario/grupo en lugar de nombres |
exa -l --time-style=iso | Marcas de tiempo en formato ISO |
exa -l --time-style=relative | Tiempo relativo (p. ej., “hace 2 horas”) |
exa -l --modified | Mostrar hora de modificación (predeterminado) |
exa -l --accessed | Mostrar hora del último acceso |
exa -l --created | Mostrar hora de creación |
exa --ignore-glob="*.tmp" | Ignorar archivos que coincidan con el patrón |
exa -lZ | Mostrar contexto de seguridad de SELinux |
exa --tree --git --icons | Vista de árbol con estado de Git e iconos |
exa -R --level=3 | Listado recursivo limitado a 3 niveles |
Configuración
Alias de shell
Agrega estos a tu ~/.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'
Personalización de colores
Establece colores personalizados usando la variable de entorno 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)
Opciones predeterminadas
Crea un envoltorio de función para opciones predeterminadas:
# Add to shell configuration
exa() {
command exa --icons --group-directories-first "$@"
}
Casos de uso comunes
Caso de uso: Inspeccionando un repositorio 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 de uso: Encontrando archivos grandes
# 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 de uso: Auditando permisos de archivos
# 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 de uso: Analizando la estructura de directorios
# 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 de uso: Navegación rápida de archivos
# 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
Mejores prácticas
- Usar alias: Configura alias de shell para reemplazar
lscon exapara una experiencia consistente en tu flujo de trabajo
- Instalar Nerd Fonts: Para soporte completo de iconos, instala una Nerd Font (por ejemplo, FiraCode Nerd Font, Hack Nerd Font) en tu terminal
- Combinar con Git: Siempre usar
--gitbandera en repositorios para ver el estado de archivos de un vistazo sin ejecutargit status- Aprovechar la vista de árbol: Usarexa --treeen lugar de instalar por separadotreecomando, especialmente con--levelpara controlar la profundidad
- Configurar colores: Personalizar
EXA_COLORSpara que coincida con el tema de tu terminal para una mejor legibilidad
- Usar opciones de estilo de tiempo: Elegir
--time-style=relativepara archivos recientes o--time-style=isopara marcas de tiempo precisas
- Salida amigable con scripts: Usar
-1(uno por línea) y--color=neveral dirigir a otros comandos o scripts
- Respetar gitignore: En repositorios grandes, usar
--git-ignorepara evitar listar miles de artefactos de compilación o dependencias
- Combinar opciones de ordenación: Encadenar
--sortcon--reversepara obtener exactamente el orden que necesitas (más reciente, más grande, etc.)
- Rendimiento en directorios grandes: Para directorios con miles de archivos, básico
exaes más rápido queexa -l --git --icons
Resolución de problemas
| Problema | Solución |
|---|
| Icons not displaying correctly | Instala una Nerd Font y configura tu terminal para usarla. Descarga desde 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 \ |
| 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 \ |
| 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 |
Referencia rápida: Opciones de tiempo
| Bandera | Descripción | Ejemplo de Salida |
|---|
--modified or -m | Tiempo de modificación (predeterminado) | 2024-01-15 14:30 |
--accessed or -u | Último tiempo de acceso | 2024-01-15 09:15 |
--created or -U | Tiempo de creación | 2024-01-10 08:00 |
--time-style=iso | Formato ISO | 2024-01-15 14:30 |
--time-style=long-iso | Formato ISO largo | 2024-01-15 14:30:45 |
--time-style=full-iso | ISO completo con zona horaria | 2024-01-15 14:30:45.123456789 +0000 |
--time-style=relative | Tiempo relativo | 2 hours ago |
Referencia rápida: Opciones de ordenación
| Clave de Ordenación | Descripción | Uso |
|---|
name | Alfabético por nombre (predeterminado) | exa -l --sort=name |
size | Tamaño de archivo | exa -l --sort=size |
extension | Extensión de archivo | exa -l --sort=extension |
modified | Tiempo de modificación | exa -l --sort=modified |
accessed | Tiempo de acceso | exa -l --sort=accessed |
created | Tiempo de creación | exa -l --sort=created |
type | Tipo de archivo (dir, file, link) | exa -l --sort=type |
inode | Número de inode | exa -l --sort=inode |
oldest | Primero los más antiguos (modificado inverso) | exa -l --sort=oldest |
Añadir--reversea cualquier ordenación para invertir el orden. | | |