eza
A modern, maintained replacement for ls with colour, icons, and Git integration.
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
treecommand - Extended attributes — can display
xattrmetadata 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 ezaUsage
# 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 --gitTip: 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'