Post has attachment

exa a modern replacement for ls written in rust for Linux/Unix
Posted on August 4, 2017in Categories Command Line Hacks last updated August 4, 2017
ls is a command to show files in Linux and Unix-like operating systems. A ls command first appeared in a version of AT&T UNIX as well as in Multics. BSD and GNU Coreutils package provides the ls command with minor syntax changes. There is now third alternative named exa. It is a modern replacement for ls.

The exa uses colors for information by default, helping you distinguish between many types of files, such as whether you are the owner, or in the owning group. It also has extra features not present in the original ls, such as viewing the Git status for a directory or recursing into directories with a tree view. The exa command written in Rust, so it’s small, fast, and portable.

Features of exa

By default exa use the colors.
It 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
Git support: View the staged and unstaged status of every file, right there in the standard view. Also works in tree view.
It queries files in parallel, giving you performance on par with ls.

One can install exa from the source code or use a package manager.

Install exa on macos

Use the brew command:
$ brew update && brew upgrade
$ brew cleanup
$ brew install exa

Sample outputs:

==> Downloading
######################################################################## 100.0%
==> Pouring exa-0.7.0.sierra.bottle.tar.gz
==> Using the sandbox
==> Caveats
Bash completion has been installed to:

zsh completions have been installed to:

fish completions have been installed to:
==> Summary
/usr/local/Cellar/exa/0.7.0: 9 files, 1.2MB
Install exa on an Arch Linux

Use the yaourt command:
# yaourt -S exa-git

Install exa using source code

To install Rust, run the following in your terminal, then follow the onscreen instructions:
$ curl -sSf | sh

Install libgit2 and cmake using apt-get command/apt command:
$ sudo apt-get install libgit2-dev cmake git libhttp-parser2.1

To download the latest version, run:
$ git clone

Run make install in the new directory to compile and install exa into /usr/local/bin:
$ make install

Install exa using binary method on any Linux distro

Make sure you install libhttp-parser:
$ sudo apt-get install libhttp-parser2.1
$ wget
$ unzip
$ sudo mv exa-linux-x86_64 /usr/local/bin/

How do I use exa?

Simply type the exa command:
$ exa
$ exa -l
$ exa -l /etc/

Sample outputs:

Fig.01 exa in action
Fig.01 exa in action

The -l option displays extended file metadata as a table. Try another example:
$ exa -bghHliS

Sample outputs:
Fig.02 exa command
Fig.02 exa command
Getting help about exa command

Type the following command:
$ exa --help

Sample outputs:

exa [options] [files...]

-?, --help show list of command-line options
-v, --version show version of exa

-1, --oneline display one entry per line
-l, --long display extended file metadata as a table
-G, --grid display entries as a grid (default)
-x, --across sort the grid across, rather than downwards
-R, --recurse recurse into directories
-T, --tree recurse into directories as a tree
-F, --classify display type indicator by file names
--colo[u]r=WHEN when to use terminal colours (always, auto, never)
--colo[u]r-scale highlight levels of file sizes distinctly

-a, --all show hidden and 'dot' files
-d, --list-dirs list directories like regular files
-r, --reverse reverse the sort order
-s, --sort SORT_FIELD which field to sort by:
--group-directories-first list directories before other files
-I, --ignore-glob GLOBS glob patterns (pipe-separated) of files to ignore
Valid sort fields: name, Name, extension, Extension, size, type,
modified, accessed, created, inode, none

-b, --binary list file sizes with binary prefixes
-B, --bytes list file sizes in bytes, without any prefixes
-g, --group list each file's group
-h, --header add a header row to each column
-H, --links list each file's number of hard links
-i, --inode list each file's inode number
-L, --level DEPTH limit the depth of recursion
-m, --modified use the modified timestamp field
-S, --blocks show number of file system blocks
-t, --time FIELD which timestamp field to list (modified, accessed, created)
-u, --accessed use the accessed timestamp field
-U, --created use the created timestamp field
--time-style how to format timestamps (default, iso, long-iso, full-iso)
--git list each file's Git status, if tracked
-@, --extended list each file's extended attributes and sizes

The exa comes with saner defaults than ls. However, I will not install it on my server. It might be a good choice for your laptop or desktop computer. For more info see exa home page/exa project.

Posted by: Vivek Gite
The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Twitter Facebook Google+ Download PDF version Report an error/typo
Your support makes a big difference:

I have a small favor to ask. More people are reading the nixCraft. Many of you block advertising which is your right, and advertising revenues are not sufficient to cover my operating costs



Post navigation
Previous post:
Previous post:5 Awesome Open Source Groupware Software Suite
nixCraft @2000-2017 nixCraft. All rights reserved.
Hosted by Linode
DNS & CDN by Cloudflare
Designed and Developed by Prospect One Prospect One

DevOps Webinar for Sansbound Students on 5th Aug 10.30am to 11.30am.

Register by Sending a Mail to with your name,contact no and student ID.

I will update with a URL and Instruction to access.

Post has attachment
Two Seminar's in sansbound. July 1st - RedHat Exam Orientation & July 22nd - RedHat Ansible Automation, Students attending July 1st seminar is eligible for July 22nd Seminar. Contact - 9486917391. Reg:

Post has attachment

Post has attachment
Seminar on RedHat Open source on Friday 26th 3pm in sansbound by RedHat Trainer. Interested Students can attend

Hi sir,

Can you please explain iptables with examples?

Post has attachment
chcon or semanage fcontext

Post has attachment
RHCSA's in April

Post has shared content

Post has attachment
Wait while more posts are being loaded