eza

A modern, maintained replacement for ls with colour, icons, and Git integration.

Screenshot of eza

eza is a modern replacement for the venerable ls command, written in Rust. It is a community-maintained fork of the now-unmaintained exa, and adds colour-coded output, icon support (via Nerd Fonts), Git status indicators, and an extended attribute display — all while remaining a drop-in replacement for everyday ls usage.

Features

  • Colour by file type — executables, symlinks, sockets, and directories each get distinct colours
  • Icons — optionally display file-type icons when using a Nerd Font terminal
  • Git integration — shows the Git status of each file alongside its name
  • Tree view — built-in recursive tree display, no need for a separate tree command
  • Extended attributes — can display xattr metadata on macOS and Linux
  • Long format extras — shows octal permissions, inode numbers, block sizes, and mount points
  • Hyperlinks — can emit OSC 8 terminal hyperlinks for filenames

Installation

cargo install eza

Or via your system package manager:

# Debian/Ubuntu (via apt)
apt install eza

# macOS
brew install eza

# Arch Linux
pacman -S eza

Usage

# Basic listing (drop-in ls replacement)
eza

# Long format with human-readable sizes
eza -lh

# Show icons (requires a Nerd Font)
eza --icons

# Tree view, two levels deep
eza --tree --level=2

# Long format with Git status column
eza -lh --git

# Show all files including dotfiles
eza -a

# Sort by modification time, newest first
eza -l --sort=modified --reverse

# Combine: long, icons, git, all files
eza -lah --icons --git

Tip: alias ls

Add this to your shell config to use eza everywhere:

alias ls='eza --icons --group-directories-first'
alias ll='eza -lh --icons --git --group-directories-first'
alias la='eza -lah --icons --git --group-directories-first'
alias tree='eza --tree --icons'