ls -alh gives you plenty of information and very little structure. eza presents the same data with colour and alignment, and adds tree view and Git status on top.

Install

  brew install eza
sudo apt install eza            # Ubuntu 24.04+
cargo install eza               # elsewhere
  

Basics

  eza                    # plain listing
eza -l                 # long form (permissions, size, mtime)
eza -la                # include hidden files
eza -l --git           # add a Git status column
eza --tree --level=2   # two levels of tree
eza -l --sort=modified --reverse   # most recently changed first
  

Options worth knowing

OptionMeaning
-lLong listing
-aInclude hidden files
-T / --treeTree view
--level=NTree depth
--gitGit status column
--iconsFile-type icons (needs a Nerd Font)
--group-directories-firstDirectories on top
-s size / -s modifiedSort key
--total-sizeCompute real directory sizes

Suggested aliases

  # ~/.zshrc
alias ls='eza --group-directories-first'
alias ll='eza -l --git --group-directories-first'
alias la='eza -la --git --group-directories-first'
alias lt='eza --tree --level=2 --group-directories-first'
  

If overriding ls makes you nervous, alias only l and ll and leave ls alone — scripts that parse ls output can break.

Instead of tree

  eza --tree --level=3 --ignore-glob="node_modules|.git"
  

Handy when you want to paste a directory structure into a document.

Next

From text to JSON → jq

Last updated 19 Aug 2026, 00:00 UTC. history