Eza, a "modern" file lister (ls)


If you spend your days in the terminal, you already know ls: tiny, fast, and—let’s be honest—visually bland. Enter Eza, a modern re-imagining of the classic ls command that keeps the snappy feel while layering on readability, context, and aesthetics. Think of it as ls after a spa day: refreshed, colorful, and unexpectedly delightful—without breaking your muscle memory.

In this guide, we’ll unpack what Eza is, why it exists, and how it can make your daily shell life sharper, faster, and far more informative.


What Is Eza?

Eza is a command-line tool that lists files and directories like ls, but with smarter defaults, rich metadata, and human-friendly formatting. It’s designed to be a drop-in improvement: same purpose, familiar flags, radically better output.

Key idea: signal over noise. Eza emphasizes what you actually need to see—permissions that matter, Git status where it counts, icons and colors that guide your eye—while avoiding the visual sludge that can make ls -l feel like a wall of glyphs.


Why Not Just ls?

ls is legendary for a reason, but it shows its age:

  • Minimal context (where’s my Git status? which files are executable?)

  • Hard-to-scan columns (especially on wide or long listings)

  • Inconsistent options across platforms

  • Sparse Unicode/emoji/icon support

Eza tackles all of this with a modern stack and thoughtful defaults—without demanding you relearn the terminal.


Headline Features You’ll Notice Immediately

  • Readable, color-rich output
    Distinct colors, subtle symbols, and sensible spacing make big directories instantly scannable.

  • Git awareness
    See untracked, modified, or ignored files inline with --git. You’ll stop bouncing between git status and ls.

  • Icons & filetype hints
    Optional icons and clear markers for directories, symlinks, sockets, and executables help you spot what’s what at a glance.

  • Human-friendly details
    Flags like --total-size, --group-directories-first, and humanized sizes make listings feel… human.

  • Tree view done right
    -T for trees, with depth control, filtering, and clean indentation. Perfect for peeking into nested structures.

  • Hyperlinks to files
    --hyperlink lets terminals that support it open files and folders with a click.

  • Flexible sorting & filtering
    Sort by size, time, extension, natural order; hide dotfiles or match globs; show only what’s relevant.


Common Eza Examples (Copy & Paste)

Tip: You can alias ls to eza safely once you’re comfortable.

  • Pretty long list (most popular)

    eza -l --group-directories-first --git
    
  • Show hidden files, human sizes

    eza -la --bytes --git
    
  • Tree view with depth

    eza -T --level=2
    
  • Icons + Git + headers

    eza -l --icons --git --header
    
  • Newest files first

    eza -l --sort=modified --reverse
    
  • Only directories, one per line

    eza -D
    
  • Follow .gitignore (stay focused)

    eza -a --git-ignore
    

Quality-of-Life Flags You’ll Keep Using

  • --group-directories-first – Directories at the top, always.

  • --icons – Enable file icons if your font supports them.

  • --git – Inline Git status (modified, untracked, ignored).

  • --sort=name|modified|size|extension|accessed – Sort exactly how you think.

  • --time-style=relative|iso|long-iso – Control timestamp format.

  • --binary or --bytes – Size units your brain doesn’t have to convert.

  • --classify – Append indicators like / for dirs, * for executables.

  • --hyperlink – Clickable paths in compatible terminals.

  • --header – Adds column headers in long listings (you’ll never go back).

  • --level=N (with -T) – Limit tree depth to avoid noise.


Eza vs. ls: What Actually Changes?

Capability ls Eza
Colorful, consistent UI Varies by platform Thoughtful, cross-platform
Git status in listing No Yes (--git)
Icons & type markers Minimal Optional icons, clear markers
Tree view External tree tool Built-in (-T)
Hyperlinks Rare First-class (--hyperlink)
Sorting & filters Basic Rich, intuitive
Readability Dense, old-school Clean, human-centric

You don’t lose speed or control—you gain context.


Installation: Your Fastest Path

Eza is widely packaged across Linux distros and is available on macOS and BSDs. Typical routes:

  • Linux: via your distro’s package manager (e.g., apt, dnf, pacman, zypper, xbps, emerge, nix-env).

  • macOS: brew install eza (or Nix/MacPorts).

  • Build from source: use cargo install eza if you prefer Rust-native installs or want the newest features.

Pro tip: After installing, confirm with eza --version and test in a directory with Git history to feel the difference.


Smart Aliases (Gentle Adoption)

You don’t have to go all-in immediately. Start with drop-in aliases:

# Safer long listing with Git and headers
alias ll='eza -l --group-directories-first --git --header'

# Show hidden files, human sizes
alias la='eza -la --group-directories-first --header'

# Tree overview up to two levels
alias lt='eza -T --level=2'

Keep ls around until you’re comfortable—then switch the alias when it feels obvious.


Performance & Compatibility Notes

  • Speed: Eza is designed to be competitive with ls for typical interactive use; the richer output does a lot of work for your eyes without lagging your fingers.

  • Fonts: Icons need a Nerd Font / icon-capable font. If icons look odd, disable --icons or install a Nerd Font.

  • Terminals: Hyperlinks require a terminal that supports OSC 8 (many do).

  • Scripting: For scripts, prefer explicit flags and stable output; interactive sugar (icons, colors) is best for humans.


Who Benefits Most?

  • Developers who bounce between code, build artefacts, and Git branches all day.

  • Ops/SREs scanning noisy directories under pressure.

  • Learners who want a friendlier, more informative CLI without memorizing arcane flags.

  • Anyone who cares about speed and clarity.


Quick FAQ

Is Eza a drop-in replacement for ls?
Practically, yes—especially for interactive use. Some option names differ, so test aliases before scripting.

Do I have to use icons or colors?
No. Eza is great in plain mode too. You control the frosting.

Will it mess with my Git repo?
No—Eza reads status; it doesn’t write.

Can I use it on remote servers?
Yes, as long as you can install it (system package or static build). It’s a perfect quality-of-life upgrade over SSH.


Verdict: Eza Makes Your Terminal Feel Modern—Instantly

If you’ve ever squinted at a dense ls -l and wished it said more with less effort, Eza is the upgrade. It keeps the spirit of ls, adds the context you constantly look up elsewhere, and turns directory listings into information you can act on at a glance. Minimal friction, maximal clarity—that’s the whole point.

Switch your ll alias for a week. You’ll wonder how you ever lived without it.

Comments