Say goodbye to boring directory listings! In this video, Jay introduces you to eza – the powerful and modern alternative to the classic ls command. Learn how eza improves readability, adds color, shows icons, and even displays Git status — all right from your terminal.
eza – Modern Replacement for ls
What is Eza?
First of all, what is eza? Well, I mentioned already that the project mentions that it’s a “modern replacement for ls” which I think is a pretty accurate description.
When it comes to ls, that’s a very popular command. In fact, it’s almost always among the first commands that every Linux user learns. You use it to show the contents of a directory, and it’ll also show you things like file sizes, modification time, file ownership, and more. I’m sure many of you watching this are familiar with the ls command already, but if you’re not – I have a dedicated video that covers it.
Anyway, eza serves the same purpose as ls – it gives you the ability to list files within a directory. The difference though is that eza is able to do more, giving you additional options that aren’t found in normal ls.
You can see the difference immediately, the colorized output is much more prominent. But not only that, we see a nice header above the results which makes the output look more modern. But it’s not just about colorization or including a header, and I’ll discuss some of its specific options later in the article.
Of course, you might be wondering what’s wrong with ls. I mean, why use something else? The truth is, there’s nothing wrong with the ls command at all. It’s the industry-standard when it comes to listing files on a Linux system, and it’s very effective at its job. When it comes down to whether or not you should replace ls with eza, that depends on whether or not its additional capabilities interest you. Both commands are valid for the purpose of listing files.
The only downside I can think of when it comes to eza is that it’s not installed by default with most Linux distributions – and depending on your distro of choice, its package may or may not be available within your distribution’s repositories. For example, eza is available in Debian 13 as well as Ubuntu, but if you use Fedora 42 – the package isn’t available. However, when we get into the installation process I’ll show you how to work around that.
Speaking of that, let’s take a look at how to get it installed right now.
Installation
So, let’s install eza.
The first step is to check the official repository site for distribution compatibility. As you can see, there’s a handy table that details which distributions feature eza in their repositories. If your distribution has the package available, all you have to do is install it.
For example, I’m connected to a Debian server right now, and I can install eza via apt:
sudo apt install eza
And the process is very similar with other supported distributions – simply install the package, and you’re good to go.
However, if you’re using a distribution that doesn’t feature eza within its repositories, you still install it – although you’ll have to do so manually. But it’s actually fairly easy.
To install it manually, first you’ll access the releases page from the project’s repository.
You’ll see a number of files available here – and the one you’re looking for has “unknown” in the name. You’ll either install the arm or x86 version, depending on your architecture. If you’re not sure what architecture your system is using, simply execute the following command:
uname -m
On the list of releases, you’ll see a generic download for both x86 and aarch64, so just download whichever one matches your platform.
The only downside of installing eza manually is that it won’t be updated whenever you patch your system. For that reason, if you install it manually you should check the releases page from time to time and check for updated versions. If you find a newer version, then all you have to do is replace eza with a newer version.
Examples of eza in action
Now it’s time to see eza in action. And if you’re already familiar with the ls command, eza is very easy to get started with.
For example, just like with ls, you can run eza with no options to view a file listing.
eza
Immediately, you’ll see one of the major differences between ls and eza – there’s a great deal more colorization.
Also, the -l option you use with ls to view a long listing is also supported with eza:
eza -l
Not only that, the human readable option is present within eza as well:
eza -lh
And with the -lh options added, we see another benefit of eza – we get a nice header on top of our results.
Another option we have with eza that is also available in ls is the –sort=size option:
eza -l --sort=size
Of course, there’s other options with eza being similar to ls, with one example being the –sort option:
eza -l --sort=size
And like I mentioned already, there’s some options that are available within eza that aren’t found in ls, as well as some existing options that have additional functionality. For example, the –sort option in eza gives you the ability to sort results by modification time:
eza -l --sort=modified
In addition to that, there’s a dedicated option within eza to show directories first, if you prefer that behavior:
eza --group-directories-first
But some of the appeal of eza is that it features additional options not found with ls. And the first example I’ll give you is the –git option. If your current working directory is a git repository, you can use this option to view information specific to the repository you’re working in:
Specific to eza:
eza -lg --git
With the –git option, you’ll be able to see the status of files within your working directory as they pertain to the status of the repository itself.
In addition to that, you can activate a tree view that can be very useful:
eza --tree
Another useful example is the ability to restrict the listing to show only files or directories:
eza --only-files
eza --only-dirs
But the fun doesn’t stop there, as you can also view icons within the results as well. The thing is though, whether or not this works depends on whether your distribution supports the extra characters, which depends on your font
eza --icons
If you’re unable to see the extra symbols, all you should need to do is install a compatible font. For example, you can install the firacode font which supports this – and on the screen right now are some commands you can use to install it within a few different distros.
Perhaps even more useful is eza’s ability to show extended file attributes, such as SELinux contexts:
eza -l --extended
And of course, just like with ls, you can combine options together:
eza -l --git --icons --group-directories-first


