Skip to content

exa

A modern replacement for the ls command, with colours, Git awareness, and tree views. Unmaintained.

Stars
24.4k
Forks
651
Licence
MIT
Language
Rust
Last update
2.1 years ago
Type
CLI

No commits in over a year — check for forks or alternatives before adopting.

What it is

exa is a command-line program that lists the files in a folder, as a replacement for the standard Unix and Linux ls command. It adds colours for file types and metadata, understands symlinks, extended attributes and Git status, and aims to have better defaults. The README says it is small, fast, and a single binary. The README also says exa is unmaintained and points users to the fork eza instead.

  • List a folder with one entry per line or as a grid using -1 or -G
  • Show a recursive tree of a directory with -T and limit depth with -L
  • Show long details, Git status and extended attributes with -l, --git and -@
  • Hide ignored files using --git-ignore or a glob with -I

Great for

  • People who already use ls and want colour and Git status in a directory listing
  • Users who want a tree view of folders from the terminal
  • Those who want a single small binary with no runtime dependencies beyond the install
  • Anyone looking for an existing install on a Linux or macOS system with a packaged version

Not ideal for

  • Anyone starting a new setup: the README says exa is unmaintained, so the fork eza is the recommended choice
  • Users who need options exactly matching ls, since the README says exa's options are almost but not quite like ls's
  • Windows users, since the README says exa is available for macOS and Linux
Step-by-step guide: how to use exaInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: A package manager such as apt, dnf, pacman, Homebrew, or cargo (Rust 1.66.1+ if building from source)

    Homebrew on macOS

    brew install exa

    Debian or Ubuntu

    sudo apt install exa

    Arch Linux

    pacman -S exa

    Cargo (Rust environment already set up)

    cargo install exa
  2. 2

    Run it

    • Install exa with one of the package commands above
    • Run exa in a terminal to list the current folder
    • Try exa -l to see details
    • Try exa -T to see a tree view
  3. 3

    Get the most out of it

    • Use --git to show Git status for each file in a repository
    • Use --icons for file icons if your terminal supports them
    • Use --group-directories-first to list folders before files
    • Use --colo[u]r-scale to highlight file sizes

Downloads

Strengths

  • Colour output distinguishes file types and metadata
  • Built-in Git and symlink awareness in the listing
  • Distributed as one binary, with packages in many common Linux and macOS package managers

Trade-offs

  • The README states the project is unmaintained and the repository is not archived
  • Options differ from ls, so some habits will not carry over
  • Git support depends on libgit2 and can be disabled if it fails to build

How it compares

ProjectStarsTypeLevelUpdatedBest for
exa (this)24.4kCLIbeginner2.1 years agoPeople who already use ls and want colour and Git status in a directory listing
linux-command37.2kLearning resourcebeginner6 days agoPeople learning the Linux command line who want quick, readable command explanations
winget-cli26.6kCLIbeginner6 days agoWindows users who want to install common apps from a terminal
fastfetch25.2kCLIbeginner4 days agoLinux users who want a fast, maintained alternative to neofetch
neofetch23.6kCLIbeginner2.3 years agoPeople who want a quick, good-looking system summary to share in screenshots
terminal105kAppbeginner6 days agoWindows users who work in the command line every day and want tabs and rich text

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.