Saltar a contenido

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: PersonalizarEXA_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ásicoexaes 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 \ | 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
## 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.