Developer Journal - exa


So, it looks like my goal of posting on a weekly basis was a little too ambitious. I stll think I can maintain a more regular posting schedule than I have in the past, but in the end I will need to make allowances for times when I do not have the time or the energy to write blog posts. Now on to the main point of this blog post.

I have been a long-time fan of command-line development tools for many years. While a good portion of my career has been spent in the Microsoft ecosystem, I still prefer using CLI tools over graphical tools integrated into development environments like Visual Studio. I would like to share some of my favorite CLI tools in hopes that it will encourage others to try them out and see how they can improve the development experience.


exa bills itself as a modern replacement for the ubiquitous Linux ls command. The purpose of exa is to create a better file listing experience by having features that ls lacks, and having a more sensible set of defaults. It is written in Rust and ships as single binary file for Linux, with no additional dependencies or runtime requirements. At the moment, exa is a Linux-only tool, but so far I have had zero issues using it with the Windows Subsystem for Linux in Windows 10.

If you look at the screenshot of exa above, you will notice that exa, by default, provides a much nicer and more colorful file listing when compared with the default ls experience. Along with the nicer color defaults, exa includes some additional sorting options, including the ability to sort on any field in the output, and built-in git awareness that will display the current git status of files and remove files from the output that are defined in .gitignore.

While exa supports some of the same options as ls, it is not a complete replacement for ls. I would avoid aliasing it to ls as it would likely break scripts that are expecting the standard ls options and output.

Wrapping Up

If you find yourself wishing ls had better output, I would encourage you to give exa a try. It takes a little practice to remember to type exa instead of ls, but in my opinion it is worth it.