Skip to content

eza - Modern ls Replacement Cheatsheet

A modern, maintained replacement for ls written in Rust. Successor to the now-unmaintained exa, with all its features plus ongoing improvements, Git awareness, icons, and rich color output.

PlatformCommand
Ubuntu/Debiansudo apt install eza
Arch Linuxsudo pacman -S eza
Fedora/RHELsudo dnf install eza
macOS (Homebrew)brew install eza
Windows (Scoop)scoop install eza
Windows (Chocolatey)choco install eza
Windows (Winget)winget install eza-community.eza
Cargo (All platforms)cargo install eza
Nixnix run github:eza-community/eza
FreeBSDpkg install eza

Tip: If migrating from exa, eza is a drop-in replacement — same flags, same behavior.

CommandDescription
ezaList files in current directory (grid layout)
eza -lLong format with permissions, size, date
eza -laLong format including hidden files
eza -1One file per line
eza -lhLong format with column headers
eza -lrLong format, reverse sort order
eza -ls sizeSort by file size
eza -ls dateSort by modification date
eza -ls nameSort alphabetically by name
eza -ls extSort by file extension
eza -lRRecursively list all subdirectories
eza -TTree view of directory structure
eza -T -L 2Tree view limited to 2 levels deep
eza -DShow only directories
eza -fShow only files
eza --iconsDisplay file type icons
eza --icons -lLong format with icons
CommandDescription
eza -xSort grid across (left-to-right) instead of down
eza -FAppend file type indicators (/ for dirs, @ for links)
eza --color=alwaysForce color output (useful when piping)
eza --color=neverDisable colors
eza --no-iconsDisable icon display
eza --hyperlinkDisplay entries as clickable terminal hyperlinks
eza --absoluteShow absolute paths
eza -w 80Set output width to 80 columns
eza --group-directories-firstList directories before files
eza --group-directories-lastList directories after files
eza --no-quotesDon’t quote filenames with spaces
CommandDescription
eza -aShow hidden files (dotfiles)
eza -d */List only directories (glob)
eza -I "*.log"Ignore files matching pattern
eza -I "node_modules|.git"Ignore multiple patterns
eza --git-ignoreRespect .gitignore rules
eza -s modifiedSort by modification time
eza -s accessedSort by access time
eza -s createdSort by creation time
eza -s typeSort by file type
eza -s noneNo sorting (directory order)
eza -rs sizeReverse sort by size (smallest first)
eza --no-symlinksHide symbolic links
CommandDescription
eza -l --gitShow Git status for each file
eza -l --git-reposShow Git repo status in directories
eza -lbShow file sizes with binary prefixes (KiB, MiB)
eza -lBShow sizes in bytes only
eza -lgShow group ownership
eza -liShow inode numbers
eza -lHShow hard link count
eza -lmUse modified timestamp (default)
eza -luUse accessed timestamp
eza -lUUse created timestamp
eza -l --time-style=long-isoISO format timestamps
eza -l --time-style=relativeShow relative times (e.g., “2 hours ago”)
eza -loShow octal permissions (e.g., 755)
eza -l@Show extended attributes
eza -lZShow SELinux security context
eza -l --total-sizeShow total size of directories (recursive)
eza -lSShow block size
eza -lMShow mount point details
CommandDescription
eza -l --gitShow per-file Git status (N=new, M=modified)
eza -l --git-reposShow repository status for directories
eza --git-ignoreHide files listed in .gitignore
eza -l --git --no-gitDisable Git markers in long view

Git status indicators: N = new/untracked, M = modified, - = unchanged

CommandDescription
eza -TFull recursive tree view
eza -T -L 3Tree limited to 3 levels
eza -TlTree view with long details
eza -T --iconsTree with icons
eza -T --git-ignoreTree ignoring .gitignore files
eza -T -I "node_modules"Tree ignoring specific directories
eza -T --no-symlinksTree without following symlinks

Create ~/.config/eza/theme.yml to customize colors and icons:

# Example theme.yml
filenames:
  Makefile:
    icon: {glyph: "🔨"}
  Dockerfile:
    icon: {glyph: "🐳"}

extensions:
  rs:
    icon: {glyph: "🦀"}
    filename: {foreground: Red}
VariableDescription
EZA_CONFIG_DIROverride config directory (default: $XDG_CONFIG_HOME/eza)
EZA_COLORSCustom color definitions (same as LS_COLORS format)
NO_COLORDisable all colors when set
COLUMNSOverride detected terminal width
# Add to ~/.bashrc, ~/.zshrc, or equivalent
alias ls='eza'
alias ll='eza -l --icons --git'
alias la='eza -la --icons --git'
alias lt='eza -T --icons -L 2'
alias l='eza -1'
# Quick overview of a project directory
eza -la --icons --git --group-directories-first

# Find large files sorted by size
eza -l --total-size -rs size

# Preview directory tree for documentation
eza -T --icons -L 3 -I "node_modules|.git|dist"

# Check Git status of all files at a glance
eza -l --git --git-repos

# Export file listing without colors (for scripts)
eza --color=never -1
Featurelseza
ColorsBasic (via --color)Rich defaults, theme support
IconsNoYes (--icons)
Git statusNoYes (--git)
Tree viewNo (use tree)Built-in (-T)
HyperlinksNoYes (--hyperlink)
SpeedFastFast (Rust)
ConfigLS_COLORStheme.yml + LS_COLORS