What eza Does
- Colors by file type — via LS_COLORS or custom scheme
- Git status — show modified/added/ignored files
- File icons — Nerd Font icons for file types
- Tree view — recursive with depth control
- Long format — human-readable sizes, permissions, modified time
- Extended attrs — xattrs, ACLs, selinux
- Sort options — name, size, mtime, accessed, created
- Filters — only dirs, only files, hidden
Architecture
Single Rust binary, replaces ls. Reads filesystem + optional git repo state + file metadata. Parses LS_COLORS for theming. Uses Unicode width for correct alignment.
Self-Hosting
CLI tool.
Key Features
- Drop-in ls replacement
- Git integration
- Nerd Font icons
- Tree view
- Color scheme support
- Accurate Unicode width
- Actively maintained (unlike archived exa)
- Cross-platform
Comparison
| Tool | Git | Icons | Tree | Maintained |
|---|---|---|---|---|
| eza | Yes | Yes | Yes | Yes |
| exa | Yes | Yes | Yes | Archived |
| lsd | Yes | Yes | Yes | Yes |
| ls (GNU) | No | No | Partial | Yes |
| tree | No | Partial | Yes | Yes |
FAQ
Q: eza vs lsd? A: Both are great. eza is closer to the standard ls usage and long-format output; lsd has a flashier default look. Personal preference.
Q: Icons show as garbled characters? A: Install a Nerd Font (like JetBrainsMono Nerd Font or FiraCode NF) and enable it in your terminal.
Q: Can it fully replace ls? A: 90% compatible, but do not replace the ls used by system scripts (POSIX requirement). Use a shell alias or PATH override that only affects interactive shells.
Sources
- Docs: https://eza.rocks
- GitHub: https://github.com/eza-community/eza
- License: EUPL 1.2