A modern replacement for ls with colors, Git integration, and tree view capabilities
exa is a command-line replacement for the traditional ls command that ships with Unix and Linux systems. It provides enhanced file listing capabilities with color-coded output to distinguish file types and metadata, support for symlinks, extended attributes, and Git status integration. The tool displays files in multiple formats including grid view (default), long view with detailed information, and tree view for directory recursion.
The tool offers extensive filtering and sorting options, including the ability to show hidden files, ignore patterns from .gitignore, sort by various fields (size, date, name, extension), and group directories first. In long view mode, exa can display additional metadata such as inode numbers, hard link counts, file system blocks, and extended attributes. It supports multiple timestamp fields (modified, accessed, created, changed) with customizable formatting styles.
exa differentiates itself from ls through better default behavior, more intuitive options, and visual enhancements like icons and color scales for file sizes. The tool is implemented as a single binary written in Rust, making it fast and portable across Unix-like systems. Note that the original exa project is unmaintained, with users directed to the community fork 'eza' for continued development.
# via Homebrew
brew install exa
# via Cargo
cargo install exa
# via apt
apt install exa
# via pacman
pacman -S exa
