3 puntos por GN⁺ 2024-07-23 | 1 comentarios | Compartir por WhatsApp

eza

Introducción a eza

  • eza es un reemplazo moderno para el comando de listado de archivos ls, incluido por defecto en los sistemas operativos Unix y Linux
  • Usa colores para distinguir tipos de archivo y metadatos
  • Reconoce enlaces simbólicos, atributos extendidos y Git
  • Es pequeño, rápido y se distribuye como un solo binario
  • Su objetivo es ser un reemplazo de ls amigable para el usuario y con muchas funciones

Funciones principales de eza

  • Corrige el "bug de cuadrícula" ocurrido en exa 2021
  • Soporte para hipervínculos
  • Proporciona detalles de puntos de montaje
  • Muestra contextos de Selinux
  • Muestra el estado de repositorios Git
  • Presenta fechas relativas fáciles de leer
  • Varias correcciones de seguridad
  • Soporte para colores de terminal claros
  • Diversas correcciones pequeñas de errores y cambios

Cómo instalarlo

  • eza está disponible en Windows, macOS y Linux
  • Las instrucciones de instalación por plataforma y distribución pueden consultarse en INSTALL.md

Opciones de línea de comandos

Opciones de visualización

  • -1, --oneline: muestra un elemento por línea
  • -G, --grid: muestra los elementos en forma de cuadrícula (predeterminado)
  • -l, --long: muestra detalles y atributos ampliados
  • -R, --recurse: recorre directorios de forma recursiva
  • -T, --tree: recorre directorios recursivamente en forma de árbol
  • -x, --across: alinea la cuadrícula horizontalmente
  • -F, --classify=(when): muestra el tipo en los nombres de archivo (always, auto, never)
  • --colo[u]r=(when): define cuándo usar colores de terminal (always, auto, never)
  • --colo[u]r-scale=(field): resalta distinguiendo niveles del field (all, age, size)
  • --color-scale-mode=(mode): usa color fijo o degradado en --color-scale (fixed, gradient)
  • --icons=(when): define cuándo mostrar íconos (always, auto, never)
  • --hyperlink: muestra elementos como hipervínculos
  • --absolute=(mode): muestra elementos con ruta absoluta (on, follow, off)
  • -w, --width=(columns): establece el ancho de pantalla en columnas

Opciones de filtrado

  • -a, --all: muestra archivos ocultos y archivos con punto
  • -d, --list-dirs: lista directorios como si fueran archivos normales
  • -L, --level=(depth): limita la profundidad de recursión
  • -r, --reverse: invierte el orden de clasificación
  • -s, --sort=(field): define el campo por el que se ordena
  • --group-directories-first: lista los directorios antes que otros archivos
  • -D, --only-dirs: lista solo directorios
  • -f, --only-files: lista solo archivos
  • --no-symlinks: no muestra enlaces simbólicos
  • --show-symlinks: muestra explícitamente enlaces simbólicos
  • --git-ignore: ignora archivos mencionados en .gitignore
  • -I, --ignore-glob=(globs): define patrones glob de archivos a ignorar

Opciones de vista larga

  • -b, --binary: muestra tamaños de archivo con prefijos binarios
  • -B, --bytes: muestra tamaños de archivo en bytes
  • -g, --group: muestra el grupo de cada archivo
  • -h, --header: agrega una fila de encabezado a cada columna
  • -H, --links: muestra la cantidad de enlaces físicos de cada archivo
  • -i, --inode: muestra el número de inode de cada archivo
  • -m, --modified: usa el campo de marca de tiempo de modificación
  • -M, --mounts: muestra detalles de montaje (solo Linux y macOS)
  • -S, --blocksize: muestra el tamaño de bloques asignados del sistema de archivos
  • -t, --time=(field): define el campo de marca de tiempo a usar
  • -u, --accessed: usa el campo de marca de tiempo de acceso
  • -U, --created: usa el campo de marca de tiempo de creación
  • -X, --dereference: desreferencia enlaces simbólicos para la información de archivo
  • -Z, --context: muestra el contexto de seguridad de cada archivo
  • -@, --extended: muestra atributos extendidos y tamaño de cada archivo
  • --changed: usa el campo de marca de tiempo de cambio
  • --git: muestra el estado de Git de cada archivo
  • --git-repos: muestra el estado de Git de cada directorio
  • --git-repos-no-status: muestra solo si el directorio es un repositorio Git (más rápido)
  • --no-git: no muestra el estado de Git
  • --time-style: define el formato de la marca de tiempo
  • --total-size: muestra el tamaño recursivo de directorios
  • --no-permissions: no muestra el campo de permisos
  • -o, --octal-permissions: muestra los permisos de cada archivo en formato octal
  • --no-filesize: no muestra el campo de tamaño de archivo
  • --no-user: no muestra el campo de usuario
  • --no-time: no muestra el campo de hora
  • --stdin: lee nombres de archivo desde stdin

Cómo contribuir a eza

  • Para contribuir a eza, primero debes seguir el código de conducta
  • Después de entender el código de conducta, puedes consultar CONTRIBUTING.md para obtener información sobre el trabajo práctico de desarrollo

Resumen de GN⁺

  • eza es un reemplazo moderno para ls que ofrece más funciones y una interfaz más amigable para el usuario
  • Incluye funciones útiles como varias opciones de color y visualización del estado de Git
  • Puede usarse en Windows, macOS y Linux, y su instalación también es sencilla
  • Es similar a ls, pero ofrece más opciones para realizar tareas de listado de archivos de forma más eficiente
  • Una herramienta con funciones similares es exa

1 comentarios

 
GN⁺ 2024-07-23
Comentarios de Hacker News
  • Los "human readable dates" resultan incómodos. Quiero ver la fecha y la hora en los listados de directorios

    • Por ejemplo, prefiero que muestre la hora exacta en lugar de "hace 1 día"
    • Podría ser consecuencia del scroll infinito
  • También existe lsd, pero prefiero eza

    • Recomendación de herramientas modernas de línea de comandos
      • bat - cat con resaltado
      • difftastic - un diff mejor
      • gdu - analizador de espacio en disco para SSD
      • zoxide - un cd moderno
      • fd - reemplazo de find
      • rg - ripgrep (grep)
      • fzf - buscador difuso
      • jless - visor de JSON con plegado usando el mouse
      • dra - descarga e instala assets de releases
      • lazygit - TUI para Git
      • lazydocker - TUI para Docker
      • yazi - administrador de archivos con vista previa de imágenes
      • zellij - mejor que tmux / screen
      • starship - configuración de prompt multiplataforma para shells
  • GNU ls sí recibe mantenimiento

    • Hay commits recientes (2024-06-24, 2024-06-27)
    • La lista de correo de GNU Coreutils también está activa
  • Después de cambiarme a fish shell, mi uso de ls bajó 100%

    • El comando Alt + l muestra el contenido del directorio
    • Los resultados del historial del shell quedan más limpios
  • Hay problemas con las herramientas de terminal que usan colores para distinguir tipos de archivo

    • Uso un fondo de terminal cómodo para la vista
    • Los esquemas de color chocan con el fondo o son difíciles de ver
    • No quiero colores en la salida de ls ni de sus reemplazos
    • La salida de ls -AFC es suficiente
  • Me intriga por qué las versiones nuevas de las utilidades GNU se compilan con licencia MIT

  • Me parece extraño que en el README no se mencione que eza es un fork de exa

  • En un teclado qwerty, escribir eza es incómodo

    • ls es una combinación de teclas rápida
    • Se puede usar un alias, pero se siente raro por temas de compatibilidad y demás
  • La función principal de eza/exa no son los colores bonitos, sino la integración con git

    • Se puede ver el estado de git de cada archivo en el listado (ignorado, modificado, etc.)
  • Casi nadie usa ls

    • Se listan los archivos necesarios con autocompletado por tabulación
    • Me pregunto por qué afirman que ls ya no recibe mantenimiento