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.