How Does eza Compare to exa?
Updated
eza is best understood as the maintained continuation of exa: it keeps exa's modern, colourised approach to file listing while adding fixes and features that exa no longer receives. If you are already using exa and want ongoing maintenance, Git awareness, hyperlinks, or security fixes, eza is the more sensible choice. If you are on a system that only packages exa and you have no need for those additions, staying put is workable — but you are staying on an unmaintained tool.
The core relationship
Both eza and exa describe themselves in the same terms: a modern replacement for ls that uses colour to distinguish file types and metadata, understands symlinks and extended attributes, and ships as a single small, fast binary. eza's own description frames it as "a modern, maintained replacement for the venerable file-listing command-line program ls," and its feature list is explicitly presented as things eza has that exa does not.
The key word is maintained. The comparison is less "two competing tools" and more "the same tool, one of which is still being worked on."
What eza adds over exa
According to eza's own feature list, the additions not present in exa include:
- A fix for "The Grid Bug" introduced in exa in 2021 — a display defect that affected grid output.
- Hyperlink support — file names can be rendered as terminal hyperlinks.
- Mount point details — extra information about mounted filesystems.
- SELinux context output — useful on systems with SELinux enforcing policies.
- Git repo status output — shows repository status alongside the listing.
- Human-readable relative dates — timestamps expressed in a more legible form.
- Support for bright terminal colours — a wider colour range in the output.
- Several security fixes.
- Many smaller bug fixes and changes.
That list is described by the project as non-exhaustive, so treat it as a floor rather than a ceiling.
Side-by-side
| Dimension | eza | exa |
|---|---|---|
| Maintenance status | Actively maintained | Not maintained (per eza's framing) |
| Grid rendering | Grid Bug fixed | Grid Bug present since 2021 |
| Hyperlinks | Supported | Not listed |
| Git status in listing | Supported | Not listed |
| SELinux context | Supported | Not listed |
| Mount point details | Supported | Not listed |
| Relative dates | Human-readable | Not listed |
| Bright terminal colours | Supported | Not listed |
| Security fixes | Included | Not listed |
| Platforms | Windows, macOS, Linux, BSDs | — |
Installation, if you decide to switch
eza is available for Windows, macOS, Linux, and BSDs. The routes documented by the project:
Cargo (crates.io) — if you already have a Rust environment:
cargo install eza
This builds the binary and places it in $HOME/.local/share/cargo/bin/eza.
Cargo from a local clone:
git clone https://github.com/eza-community/eza.git
cd eza
cargo install --path .
Arch Linux — available in the [extra] repository:
pacman -S eza
Debian and Ubuntu — available from deb.gierens.de. The project's steps are:
sudo apt update
sudo apt install -y gpg
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 chmod 644 /etc/apt/keyrings/gierens.gpg /etc/apt/sources.list.d/gierens.list
sudo apt update
sudo apt install -y eza
Nix — if you have flakes enabled, you can try it without installing:
nix run github:eza-community/eza
To pass arguments through, use --, for example nix run github:eza-community/eza -- -ol .. For a persistent install, eza is in Nixpkgs: nix profile install nixpkgs#eza for profile users, or nix-env -i eza for nix-env users.
Gentoo — eza is packaged there as well.
How to decide
Choose eza if any of these apply: you want a tool that is still receiving fixes; you rely on Git status appearing in your listings; you work on SELinux systems and want context output; you want hyperlinks or bright colours; or you simply do not want to run software with known unfixed defects.
Stay on exa only if it is already installed, it does what you need, and you have no interest in the added features — recognising that you are accepting the Grid Bug and forgoing security fixes.
Because eza is a drop-in-style replacement for the same job, the migration cost is essentially the install step plus, if you like, aliasing your existing habits to the new binary.