Ir al contenido

Hoja de referencia de exa

Hoja de referencia de exa

Instalación

PlatformComando
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

Comandos básicos

ComandoDescripción
exaList files in current directory (replaces ls)
exa -lFormato largo con permisos, tamaño y marcas de tiempo
exa -aShow all files including hidden (. files)
exa -laFormato largo con todos los archivos, incluyendo ocultos
exa -lhFormato largo con tamaños legibles para humanos (KiB, MiB, GiB)
exa -lHFormato largo con tamaños decimales (KB, MB, GB)
exa -1Un archivo por línea (útil para scripting)
exa -RListado recursivo de directorios
exa -FAgregar indicadores de tipo de archivo (/, @, \
exa --gridDiseño de cuadrícula (vista de terminal predeterminada)
exa --acrossDiseño de flujo horizontal
exa -DListar solo directorios
exa -fListar solo archivos (excluir directorios)
exa --color=alwaysForzar salida de color
exa --color=neverDeshabilitar salida de color

Uso avanzado

ComandoDescripción
exa --treeDisplay directory structure as tree (replaces tree)
exa --tree --level=2Vista de árbol limitada a 2 niveles de profundidad
exa -l --gitMostrar estado de Git para archivos (rastreados, modificados, sin rastrear)
exa --git-ignoreRespect .gitignore and show only tracked files
exa -l --sort=modifiedOrdenar por tiempo de modificación (más reciente primero)
exa -l --sort=sizeOrdenar por tamaño de archivo (de mayor a menor)
exa -l --sort=extensionOrdenar por extensión de archivo
exa -l --reverseOrden de clasificación inverso
exa -l --iconsMostrar iconos de tipos de archivo (requiere Nerd Fonts)
exa -l --extendedMostrar atributos extendidos (SELinux, ACLs)
exa -l@Forma abreviada para atributos extendidos
exa -liMostrar números de inode
exa -lsMostrar tamaños de bloque
exa -l --octal-permissionsMostrar permisos en formato octal (755)
exa -l --numericMostrar IDs numéricos de usuario/grupo en lugar de nombres
exa -l --time-style=isoMarcas de tiempo en formato ISO
exa -l --time-style=relativeTiempo relativo (p. ej., “hace 2 horas”)
exa -l --modifiedMostrar hora de modificación (predeterminado)
exa -l --accessedMostrar hora del último acceso
exa -l --createdMostrar hora de creación
exa --ignore-glob="*.tmp"Ignorar archivos que coincidan con el patrón
exa -lZMostrar contexto de seguridad de SELinux
exa --tree --git --iconsVista de árbol con estado de Git e iconos
exa -R --level=3Listado 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

ProblemaSolución
Icons not displaying correctlyInstala una Nerd Font y configura tu terminal para usarla. Descarga desde nerdfonts.com
exa: command not foundEnsure installation completed successfully. Check $PATH includes /usr/local/bin or ~/.cargo/bin
Git status not showingVerify you’re in a Git repository (git status). Use exa -l --git explicitly
Colors not working in pipesUse exa --color=always when piping to less or other commands: `exa —color=always \
Slow performance on network drivesDisable Git integration (--no-git) and avoid extended attributes (--no-extended) on slow filesystems
Permission denied errorsSome extended attributes require elevated privileges. Use sudo exa -l@ or skip with regular exa -l
Tree view truncatedIncrease depth with --level=N or remove limit with no level flag (caution: may be slow on large trees)
Alias conflicts with system lsUse \ls to call original ls, or unalias ls temporarily. Check aliases with `alias \
Icons showing as boxes/squaresTerminal doesn’t support Unicode properly. Update terminal emulator or disable icons with --no-icons
Different output than lsexa sorts and displays differently by default. Use --sort=name and adjust flags to match ls behavior

Referencia rápida: Opciones de tiempo

BanderaDescripciónEjemplo de Salida
--modified or -mTiempo de modificación (predeterminado)2024-01-15 14:30
--accessed or -uÚltimo tiempo de acceso2024-01-15 09:15
--created or -UTiempo de creación2024-01-10 08:00
--time-style=isoFormato ISO2024-01-15 14:30
--time-style=long-isoFormato ISO largo2024-01-15 14:30:45
--time-style=full-isoISO completo con zona horaria2024-01-15 14:30:45.123456789 +0000
--time-style=relativeTiempo relativo2 hours ago

Referencia rápida: Opciones de ordenación

Clave de OrdenaciónDescripciónUso
nameAlfabético por nombre (predeterminado)exa -l --sort=name
sizeTamaño de archivoexa -l --sort=size
extensionExtensión de archivoexa -l --sort=extension
modifiedTiempo de modificaciónexa -l --sort=modified
accessedTiempo de accesoexa -l --sort=accessed
createdTiempo de creaciónexa -l --sort=created
typeTipo de archivo (dir, file, link)exa -l --sort=type
inodeNúmero de inodeexa -l --sort=inode
oldestPrimero los más antiguos (modificado inverso)exa -l --sort=oldest
Añadir--reversea cualquier ordenación para invertir el orden.