Let’s be honest: ls is boring. It’s served us well for decades, but in a modern development workflow, seeing a wall of monochromatic text isn’t exactly efficient. That’s why I switched to eza (the community-maintained fork of exa).

If you haven’t tried it yet, eza is a modern replacement for ls written in Rust. It doesn’t just add colors; it adds context. Whether it’s integrating Git status directly into your file list or visualizing directory structures, it transforms how I interact with my filesystem. To help you get started, I’ve put together these 10 eza command examples that I use every single day in my professional setup.

Before we dive in, if you’re looking to overhaul your entire CLI experience, you might want to check out my modern unix commands list to see what else you can replace.

1. The ‘Better ls’ (Basic Long View)

The first thing I did was alias ls to eza -l. The long view in eza is significantly more readable than the standard Unix version, providing better spacing and intuitive coloring.

eza -l

This gives you the standard permissions, size, and modification date, but with a visual polish that makes scanning files much faster.

2. Adding Icons for Visual Recognition

One of my favorite features is the icon support. When you’re scanning a folder with 50 files, seeing a small TypeScript icon or a folder icon helps your brain categorize files instantly.

eza -l --icons

Note: You’ll need a Nerd Font installed in your terminal for these icons to render correctly.

3. Visualizing Project Hierarchy with Tree View

I used to rely on the tree command, but eza has a built-in tree view that is far more flexible and visually appealing. This is perfect for documenting a project’s structure in a README.

eza --tree

If the project is too deep, I limit it to a specific level so I don’t get flooded with node_modules:

eza --tree --level=2

4. Git Integration: See Changes at a Glance

This is the ‘killer feature’ for me. eza can tell you the Git status of your files without you having to run git status. It adds a column that shows if a file is modified, added, or ignored.

eza -l --git

In my experience, this saves me dozens of keystrokes per hour. As shown in the terminal output image below, the Git column provides immediate feedback on which files need staging.

Comparison of eza output with and without the --git flag showing file status indicators
Comparison of eza output with and without the –git flag showing file status indicators

5. Sorting by File Size (Find the Space Hogs)

When cleaning up a project, I need to find the largest files quickly. Instead of piping ls into sort, eza handles this natively.

eza -l --sort=size

Combine this with -r to reverse the order and put the largest files at the top.

6. Filtering Hidden Files

By default, eza hides dotfiles. To see your .env or .gitignore files, use the -a flag, but I prefer -la for the detailed view.

eza -la

7. Grouping Directories First

I find it distracting when files and folders are mixed together. I always use the --group-directories-first flag to keep my workspace organized.

eza -l --group-directories-first

8. Human-Readable File Sizes

While eza does this well by default, you can explicitly ensure sizes are in a readable format (KB, MB, GB) using the -h flag.

eza -lh

9. Using the Grid View for Quick Scans

When I don’t need the metadata (permissions/dates) but want icons and colors, I switch to grid mode.

eza --grid --icons

10. The ‘Ultimate’ Alias

After testing various combinations, here is the alias I added to my .zshrc. This combines the best of all the examples above into one command I call ls.

alias ls='eza -l --icons --git --group-directories-first --time-style=long-iso'

If you enjoy eza, you’ll probably love other best rust-based cli tools that focus on speed and modern aesthetics.

Common Mistakes When Using eza

Measuring Success: Is it Actually Faster?

You might wonder if a fancy ls actually improves productivity. In my case, the win isn’t in the execution speed (though Rust makes it lightning fast), but in the cognitive load. I spend less time mentally parsing text and more time understanding the state of my project. If you find yourself running git status every 30 seconds, the --git flag alone will save you significant mental energy.

Ready to modernize your workflow? Give these eza command examples a try and let me know which one becomes your favorite in the comments!