eza: una alternativa moderna a ls para listar archivos
Guía de referencia de eza: instalación en Debian, opciones de visualización, filtrado, vista larga, integración con Git, temas y buenas prácticas para listar archivos desde la terminal.
eza es una herramienta de línea de comandos que reemplaza al clásico ls con mejor visualización, más funcionalidades y valores por defecto más útiles. Escrita en Rust, es un binario único, rápido y multiplataforma (Linux, macOS, Windows, BSDs) que colorea la salida según el tipo de archivo, entiende symlinks, atributos extendidos y repositorios Git.
Instalación
Debian/Ubuntu
eza está disponible mediante un repositorio externo:
sudo mkdir -p /etc/apt/keyrings
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o /etc/apt/keyrings/gierens.gpg
echo "deb [signed-by=/etc/apt/keyrings/gierens.gpg] http://deb.gierens.de stable main" | sudo tee /etc/apt/sources.list.d/gierens.list
sudo apt update && sudo apt install eza
Otros gestores de paquetes
# Homebrew (macOS/Linux)
brew install eza
# Arch Linux
pacman -S eza
# Fedora
dnf install eza
# Cargo (Rust)
cargo install eza
# Nix
nix run github:eza-community/eza
Verifica la instalación:
eza --version
Uso básico
Ejecuta eza sin argumentos para listar el directorio actual:
eza
Para listar un directorio específico:
eza /var/log
Para listar varios directorios a la vez:
eza src/ tests/ docs/
Modos de visualización
eza ofrece varios modos para mostrar los archivos:
| Opción | Descripción |
|---|---|
-1 | Un archivo por línea |
-G | Cuadrícula (por defecto) |
-l | Vista larga con detalles |
-T | Vista de árbol |
-R | Recursión en subdirectorios |
-x | Cuadrícula ordenada horizontalmente |
# Vista larga
eza -l
# Vista de árbol
eza -T
# Vista de árbol con profundidad limitada
eza -T -L 2
# Un archivo por línea
eza -1
Íconos e indicadores
# Mostrar íconos (requiere Nerd Font)
eza --icons
# Mostrar indicadores de tipo (/ para directorios, @ para symlinks, etc.)
eza -F
# Habilitar hyperlinks en la salida
eza --hyperlink
Opciones de filtrado
Archivos ocultos
# Mostrar archivos ocultos (dotfiles)
eza -a
# Mostrar archivos ocultos excepto . y ..
eza -a
Ordenamiento
# Ordenar por tamaño
eza -s size
# Ordenar por fecha de modificación
eza -s modified
# Ordenar por extensión
eza -s extension
# Orden inverso
eza -r -s size
Campos disponibles para ordenar: name, Name (sensible a mayúsculas), size, extension, Extension, modified, changed, accessed, created, inode, type, none.
Filtrado de entradas
# Solo directorios
eza -D
# Solo archivos
eza -f
# Directorios primero
eza --group-directories-first
# Ignorar patrones (similar a .gitignore)
eza -I "*.log|node_modules"
# Respetar .gitignore
eza --git-ignore
Vista larga
La vista larga (-l) muestra información detallada de cada archivo. Se puede personalizar qué columnas mostrar:
# Vista larga básica
eza -l
# Con encabezados de columna
eza -lh
# Con tamaños en formato binario (KiB, MiB)
eza -lb
# Con tamaños exactos en bytes
eza -lB
# Con grupo del propietario
eza -lg
# Con número de inodo
eza -li
# Con permisos en formato octal
eza -l --octal-permissions
Marcas de tiempo
# Mostrar fecha de modificación (por defecto con -l)
eza -l
# Mostrar fecha de acceso
eza -lu
# Mostrar fecha de creación
eza -lU
# Formato ISO
eza -l --time-style iso
# Formato ISO largo
eza -l --time-style long-iso
# Formato relativo ("2 hours ago")
eza -l --time-style relative
Estilos de tiempo disponibles: default, iso, long-iso, full-iso, relative.
Ocultar columnas
# Sin permisos
eza -l --no-permissions
# Sin tamaño de archivo
eza -l --no-filesize
# Sin usuario
eza -l --no-user
# Sin marca de tiempo
eza -l --no-time
Integración con Git
eza puede mostrar el estado de Git de cada archivo y el estado general de repositorios:
# Estado de Git por archivo (staged, modified, etc.)
eza -l --git
# Estado de repositorios Git en directorios listados
eza -l --git-repos
Los indicadores de estado por archivo incluyen:
| Indicador | Significado |
|---|---|
N | Nuevo (untracked) |
M | Modificado |
- | Sin cambios |
I | Ignorado |
La primera columna representa el índice (staging area) y la segunda el árbol de trabajo.
Vista de árbol
La vista de árbol es útil para explorar la estructura de un proyecto:
# Árbol completo
eza -T
# Árbol con profundidad máxima de 3 niveles
eza -T -L 3
# Árbol con vista larga
eza -lT -L 2
# Árbol con íconos y Git
eza -T --icons --git -L 2
Temas y personalización
eza soporta temas mediante un archivo theme.yml. La ubicación del archivo puede ser:
- El directorio definido en la variable
EZA_CONFIG_DIR $XDG_CONFIG_HOME/eza/theme.yml(por defecto~/.config/eza/theme.yml)
mkdir -p ~/.config/eza
Ejemplo de theme.yml:
filekinds:
normal: { foreground: White }
directory: { foreground: Blue, is_bold: true }
symlink: { foreground: Cyan }
executable: { foreground: Green, is_bold: true }
perms:
user_read: { foreground: Yellow, is_bold: true }
user_write: { foreground: Red, is_bold: true }
user_execute_file: { foreground: Green, is_bold: true }
size:
number_byte: { foreground: Green }
number_kilo: { foreground: Green, is_bold: true }
number_mega: { foreground: Yellow }
number_giga: { foreground: Red }
La comunidad mantiene temas predefinidos en el repositorio eza-themes.
Alias recomendados
Agrega estos alias a tu ~/.bashrc o ~/.zshrc para reemplazar ls:
# Reemplazar ls con eza
alias ls='eza --icons --group-directories-first'
alias ll='eza -l --icons --group-directories-first --git -h'
alias la='eza -la --icons --group-directories-first --git -h'
alias lt='eza -T --icons --group-directories-first -L 2'
alias l.='eza -a --icons | grep "^\."'
Buenas prácticas
- Reemplaza
lscon alias — configura alias que incluyan--iconsy--group-directories-firstpara una experiencia mejorada por defecto. - Usa
--git-ignoreen proyectos — evita listarnode_modules,disty otros directorios generados que ya están en.gitignore. - Limita la profundidad del árbol — siempre usa
-Lcon-Tpara evitar salidas excesivamente largas en proyectos grandes. - Aprovecha
--git— la integración con Git en la vista larga permite ver de un vistazo qué archivos han sido modificados sin ejecutargit status. - Instala una Nerd Font — los íconos (
--icons) hacen la salida mucho más legible, pero requieren una fuente parcheada como FiraCode Nerd Font. - Personaliza con temas — usa
theme.ymlpara adaptar los colores a tu esquema de terminal favorito en lugar de depender de los valores por defecto.