$ exa Cargo.toml LICENCE README.md screenshot.png src target $ exa -l .rw-r--r-- 9.6k ben 29 Jun 16:16 Cargo.lock .rw-r--r-- 547 ben 23 Jun 10:54 Cargo.toml .rw-r--r-- 1.1k ben 23 Nov 2014 LICENCE .rw-r--r-- 2.5k ben 21 May 14:38 README.md .rw-r--r-- 382k ben 8 Jun 21:00 screenshot.png drwxr-xr-x - ben 29 Jun 14:50 src drwxr-xr-x - ben 28 Jun 19:53 target $ exa -bghHliS inode Permissions Links Size Blocks User Group Date Modified Name 21214836 .rw-r--r-- 1 9.4Ki 24 ben staff 29 Jun 16:16 Cargo.lock 19896082 .rw-r--r-- 1 547 8 ben staff 23 Jun 10:54 Cargo.toml 1971322 .rw-r--r-- 1 1.1Ki 8 ben staff 23 Nov 2014 LICENCE 19134861 .rw-r--r-- 1 2.4Ki 8 ben staff 21 May 14:38 README.md 20087308 .rw-r--r-- 1 373Ki 752 ben staff 8 Jun 21:00 screenshot.png 1971325 drwxr-xr-x 12 - - ben staff 29 Jun 14:50 src 21150214 drwxr-xr-x 4 - - ben staff 28 Jun 19:53 target
All the colours: When dealing with pages and pages of information, it’s nice to be able to distinguish individual fields by colour. Different types of file and data will be coloured differently, and colours in the user and group columns will reflect whether you are the file’s owner, or are in the owning group.
All the information: exa can display a file’s extended attributes, as well as standard filesystem information such as the inode, the number of blocks, and a file’s various dates and times.
Tree view: Not only is the standard
tree tool built-in, but it’ll show you your files’ information alongside the hierarchy.
Git support: View the staged and unstaged status of every file, right there in the standard view. Also works in tree view.
It’s fast: exa queries files in parallel, giving you performance on par with
The easiest way to get exa is to download a binary for your platform and place it in a directory within your
$PATH, such as
The binary is entirely self-contained, so that’s all you need.
If you’re on a Mac with Homebrew, then you can run:
brew install exa
If you’re on Arch Linux with Yaourt, then you can run:
yaourt -S exa-git
If your OS isn’t listed here, then you’ll have to download and install the binary yourself. Such is life.
If you’re brave and have development tools installed, you can build the latest development version from source.
git clone https://github.com/ogham/exa.git
make installin the new directory to compile and install exa into
No — exa has, in my opinion, much saner defaults than
ls, so while the available command-line options are similar, they are not exactly the same. Most of the common options will work consistently, though. For example, exa prints human-readable file sizes by default (when would you not want that?) so
ls -h no longer applies.
Because you get to see the Git information alongside everything else. Yes, it’s already trivial to just run
git status when you’re in your shell. But when you need to double-check exactly which files have been staged, you really need to see it clearly!
Sorry, not yet — although Rust is cross-platform, I don’t have a Windows machine to develop on, and a few Unix-isms are still present here and there. I don’t want to release v1.0 without Windows support, though.
It uses the MIT licence.