3 pontos por GN⁺ 2024-07-23 | 1 comentários | Compartilhar no WhatsApp

eza

Introdução ao eza

  • eza é um substituto moderno para o comando de listagem de arquivos ls, fornecido por padrão em sistemas Unix e Linux
  • Usa cores para distinguir tipos de arquivos e metadados
  • Reconhece links simbólicos, atributos estendidos e Git
  • É pequeno, rápido e distribuído como um único binário
  • Tem como objetivo ser um substituto do ls amigável e rico em recursos

Principais recursos do eza

  • Correção do "bug de grade" ocorrido no exa 2021
  • Suporte a hyperlinks
  • Fornece detalhes de pontos de montagem
  • Exibe contexto do Selinux
  • Exibe o estado de repositórios Git
  • Mostra datas relativas legíveis por humanos
  • Várias correções de segurança
  • Suporte a cores para terminais claros
  • Diversas pequenas correções de bugs e mudanças

Como instalar

  • O eza está disponível para Windows, macOS e Linux
  • As instruções de instalação por plataforma e distribuição podem ser consultadas em INSTALL.md

Opções de linha de comando

Opções de exibição

  • -1, --oneline: exibe um item por linha
  • -G, --grid: exibe os itens em formato de grade (padrão)
  • -l, --long: exibe detalhes e atributos expandidos
  • -R, --recurse: percorre diretórios recursivamente
  • -T, --tree: percorre diretórios recursivamente em formato de árvore
  • -x, --across: alinha a grade horizontalmente
  • -F, --classify=(when): exibe o tipo no nome do arquivo (sempre, automático, nunca)
  • --colo[u]r=(when): define quando usar cores no terminal (sempre, automático, nunca)
  • --colo[u]r-scale=(field): destaca distinguindo níveis de field (todos, idade, tamanho)
  • --color-scale-mode=(mode): usa cor fixa ou gradiente em --color-scale (fixa, gradiente)
  • --icons=(when): define quando exibir ícones (sempre, automático, nunca)
  • --hyperlink: exibe itens como hyperlinks
  • --absolute=(mode): exibe itens com caminho absoluto (on, follow, off)
  • -w, --width=(columns): define a largura da tela em colunas

Opções de filtragem

  • -a, --all: exibe arquivos ocultos e arquivos com ponto
  • -d, --list-dirs: lista diretórios como arquivos comuns
  • -L, --level=(depth): limita a profundidade da recursão
  • -r, --reverse: inverte a ordem de classificação
  • -s, --sort=(field): define o campo de ordenação
  • --group-directories-first: lista diretórios antes dos outros arquivos
  • -D, --only-dirs: lista apenas diretórios
  • -f, --only-files: lista apenas arquivos
  • --no-symlinks: não exibe links simbólicos
  • --show-symlinks: exibe explicitamente links simbólicos
  • --git-ignore: ignora arquivos mencionados em .gitignore
  • -I, --ignore-glob=(globs): define padrões glob de arquivos a ignorar

Opções de visualização longa

  • -b, --binary: exibe o tamanho dos arquivos com prefixos binários
  • -B, --bytes: exibe o tamanho dos arquivos em bytes
  • -g, --group: exibe o grupo de cada arquivo
  • -h, --header: adiciona uma linha de cabeçalho a cada coluna
  • -H, --links: exibe o número de hard links de cada arquivo
  • -i, --inode: exibe o número de inode de cada arquivo
  • -m, --modified: usa o campo de timestamp de modificação
  • -M, --mounts: exibe detalhes de montagem (apenas Linux e macOS)
  • -S, --blocksize: exibe o tamanho dos blocos do sistema de arquivos alocados
  • -t, --time=(field): define o campo de timestamp a usar
  • -u, --accessed: usa o campo de timestamp de acesso
  • -U, --created: usa o campo de timestamp de criação
  • -X, --dereference: resolve links simbólicos para obter informações do arquivo
  • -Z, --context: exibe o contexto de segurança de cada arquivo
  • -@, --extended: exibe os atributos estendidos e o tamanho de cada arquivo
  • --changed: usa o campo de timestamp de alteração
  • --git: exibe o estado Git de cada arquivo
  • --git-repos: exibe o estado Git de cada diretório
  • --git-repos-no-status: exibe apenas se o diretório é um repositório Git (mais rápido)
  • --no-git: não exibe o estado Git
  • --time-style: define o formato do timestamp
  • --total-size: exibe o tamanho recursivo do diretório
  • --no-permissions: não exibe o campo de permissões
  • -o, --octal-permissions: exibe as permissões de cada arquivo em formato octal
  • --no-filesize: não exibe o campo de tamanho do arquivo
  • --no-user: não exibe o campo de usuário
  • --no-time: não exibe o campo de tempo
  • --stdin: lê nomes de arquivos da stdin

Como contribuir com o eza

  • Para contribuir com o eza, primeiro é preciso seguir o código de conduta
  • Depois de entendê-lo, consulte o CONTRIBUTING.md para obter informações sobre como começar a contribuir de fato

Resumo do GN⁺

  • eza é um substituto moderno para o ls, oferecendo mais recursos e uma interface mais amigável
  • Inclui funções úteis como várias opções de cores e exibição do estado do Git
  • Está disponível para Windows, macOS e Linux, e a instalação também é simples
  • É semelhante ao ls, mas oferece mais opções para tornar a listagem de arquivos mais eficiente
  • Uma ferramenta com funcionalidade semelhante é o exa

1 comentários

 
GN⁺ 2024-07-23
Comentários do Hacker News
  • "datas legíveis por humanos" são incômodas. Quero ver a data e a hora na listagem de diretórios

    • Por exemplo, prefiro ver a hora exata em vez de "há 1 dia"
    • Isso também pode ser resultado do scroll infinito
  • Existe o lsd, mas prefiro o eza

    • Recomendações de ferramentas de linha de comando modernas
      • bat - cat com destaque de sintaxe
      • difftastic - um diff melhor
      • gdu - analisador de espaço em disco para SSD
      • zoxide - um cd moderno
      • fd - substituto para find
      • rg - ripgrep (grep)
      • fzf - localizador fuzzy
      • jless - visualizador de JSON com folding por mouse
      • dra - baixa e instala assets de releases
      • lazygit - TUI para Git
      • lazydocker - TUI para Docker
      • yazi - gerenciador de arquivos com pré-visualização de imagens
      • zellij - tmux / screen melhorado
      • starship - configuração de prompt cross-shell
  • O GNU ls está, sim, sendo mantido

    • Há commits recentes (2024-06-24, 2024-06-27)
    • A lista de discussão do GNU Coreutils também está ativa
  • Depois de migrar para o fish shell, o uso de ls caiu 100%

    • O comando Alt + l mostra o conteúdo do diretório
    • Resultado mais limpo no histórico do shell
  • Há problemas com ferramentas de terminal que usam cores para diferenciar tipos de arquivo

    • Uso um fundo de terminal confortável para os olhos
    • O esquema de cores entra em conflito com o fundo ou fica difícil de ver
    • Não quero cores na saída do ls ou de substitutos do ls
    • A saída de ls -AFC já é suficiente
  • Fico curioso por que novas versões de utilitários GNU estão sendo compiladas sob licença MIT

  • Acho estranho que o README não mencione que o eza é um fork do exa

  • Digitar eza em um teclado qwerty é desconfortável

    • ls é uma combinação de teclas rápida
    • Dá para usar alias, mas isso parece estranho por questões de compatibilidade e afins
  • O principal recurso do eza/exa não são as cores bonitas, e sim a integração com Git

    • Dá para ver o status do Git de cada arquivo na listagem (ignorado, modificado etc.)
  • Quase ninguém usa ls

    • Listam os arquivos necessários com tab completion
    • Fico curioso por que dizem que o ls não é mais mantido