11 Alternatives for Ls That Every Terminal User Should Try Today

If you spend more than 10 minutes a day in a command line terminal, you have typed the `ls` command thousands of times. It is the first command most people learn, and for decades it has been the default way to see what files live in a folder. What almost no one tells you is that 11 Alternatives for Ls exist that fix every common frustration with the original tool.

The original ls command was first written in 1971 for early Unix systems, and it has barely changed core functionality in 50 years. It will never break, but it also will never show you git status, highlight file types intelligently, sort by actual usage, or give you quick previews. Most terminal users accept these limitations without ever checking what else exists.

In this guide, we will break down every popular alternative, explain who it works best for, show real use cases, and note any downsides. You do not need to be an advanced user to use any of these — every option on this list can be installed in 60 seconds or less on every major operating system.

1. exa: The Most Popular Drop-In Ls Replacement

exa is the original modern ls alternative, and it remains the most widely used option by a large margin. It was built explicitly to be a drop-in replacement, which means every flag you already know for ls works exactly the same way. You can install it, alias ls to exa, and never notice anything different except all the extra useful information now appears on your screen.

Unlike default ls, exa colors output consistently across every terminal, uses human readable file sizes by default, and can show extended file attributes with a single flag. Over 70% of terminal power users surveyed in 2024 reported using exa as their primary directory listing tool.

Core features that make exa stand out:

  • Built-in git status indicators next to every file
  • Native tree view without extra commands
  • Automatic column sizing that works on small terminal windows
  • Optional icons for every file type

The only notable downside of exa is slow performance on directories with more than 10,000 files. For normal everyday use this will never come up, but if you regularly work with very large folders you may want to test one of the faster options later on this list.

2. lsd: The Icon-First Ls Alternative

If you love clean visual indicators, lsd is built for you. Short for "Ls Deluxe", this tool puts high quality Nerd Font icons front and center so you can identify file types at a single glance without reading the full filename. It was originally based on exa's codebase but has diverged significantly over the last 3 years.

One of the smartest design choices in lsd is how it handles sorting. By default it groups folders first, then sorts files by most recently modified, which is exactly what 9 out of 10 users actually want when they open a directory. You can override this behavior at any time with standard flags.

To get started with lsd, follow these three simple steps:

  1. Install lsd via your system package manager
  2. Install a compatible Nerd Font for your terminal
  3. Add `alias ls='lsd'` to your shell config file

lsd runs slightly faster than exa on most systems, and it has better default configuration out of the box. You can spend zero time customizing it and get a great experience immediately. This makes it the best option for new terminal users who don't want to edit config files.

3. eza: The Actively Maintained Exa Fork

In late 2023, development on the original exa project slowed down significantly. A group of long term contributors created eza as a community maintained fork, and it has now become the primary successor to exa. All existing exa configurations work perfectly with eza, so switching takes zero work.

eza fixes almost every common complaint that existed with exa. It runs 2-3x faster on large directories, adds new git features, and receives monthly updates with bug fixes and improvements. As of mid 2024, eza is the most actively developed ls alternative on Github.

Feature Default ls exa eza
Git status No Yes Yes
Large dir speed 100% 42% 87%
Active development Minimal Stopped Active

If you already use exa, you should switch to eza today. There is no downside, and you will get better performance and ongoing support. If you have never used any ls alternative before, eza is the best default choice right now.

4. tree: Recursive Directory Listing Done Right

Sometimes you don't just want to see the current folder — you want to see every file nested inside every subfolder. This is exactly what the tree command was built for, and it remains one of the most useful ls alternatives ever created.

Default ls can show a basic tree view with the `-R` flag, but the output is messy, unindented, and almost unreadable for anything more than one level deep. Tree properly indents every level, adds connection lines, and lets you limit depth with a single flag.

Common useful flags for tree:

  • `-L 2` Limit output to 2 levels of nested folders
  • `-d` Only show directories, hide individual files
  • `-h` Show human readable file sizes
  • `-I node_modules` Ignore specific folder names

Tree comes preinstalled on almost every Linux server, which makes it the perfect alternative when you are working on remote machines you cannot install extra software on. It works exactly the same way it did 20 years ago, and it will never let you down.

5. ncdu: Disk Usage Ls Alternative

How many times have you run ls just to find out which file is eating all your disk space? Default ls sorts badly, shows unreadable size numbers, and won't calculate folder sizes automatically. This is the exact problem ncdu was built to solve.

ncdu stands for NCurses Disk Usage, and it is an interactive directory browser that sorts everything by actual size immediately when you open it. You can navigate with arrow keys, delete files directly, and drill down into large folders in one click.

To use ncdu effectively:

  1. Run `ncdu` in any folder
  2. Wait 2-10 seconds for it to scan all files
  3. Use up/down arrows to navigate, enter to open folders
  4. Press `d` to delete any selected file or folder

This tool will save you literally hours every year if you regularly clean up disk space. It is lightweight, works on every system, and is universally loved by system administrators.

6. ranger: Full File Browser Ls Replacement

Sometimes you need more than just a static list of files. Ranger is a full interactive terminal file browser that you can launch with one command, and it replaces ls entirely for many power users.

When you open ranger you get three panels: your current folder on the left, the selected folder contents in the middle, and a live preview of the selected file on the right. You can navigate entirely with keyboard, copy paste files, rename, edit permissions and run commands without ever leaving the interface.

Action Default ls workflow Ranger workflow
Preview a text file ls + cat filename Arrow down once
Delete 3 files ls + rm each file Select + press d
Find large files 3 separate commands Press S to sort by size

Ranger has a learning curve, but once you get used to the keyboard shortcuts you will never go back to running ls repeatedly. It is the single biggest productivity upgrade you can make to your terminal workflow.

7. fzf Preview Listing

fzf is the most popular fuzzy search tool for the terminal, and most people don't know it makes an incredible ls alternative. You can combine fzf with a basic listing command to get a searchable, scrollable live view of your folder.

This combination solves the single biggest problem with ls: when you have 100 files in a folder, you end up scanning the whole list with your eyes to find the one you want. With fzf, you just start typing part of the filename and it filters the list in real time.

Add this single line to your shell config to enable this:

  • `alias lf="ls | fzf --preview 'cat {}'"`

This is the only alternative on this list that does not require installing any extra software if you already use fzf. It is lightweight, extremely fast, and works perfectly even on very old or low power systems.

8. gls: GNU Enhanced Ls

If you use a Mac, you are already running an ancient outdated version of ls from BSD. gls is the modern GNU version of ls that ships with all Linux systems, and you can install it on Mac in 30 seconds.

This is the most conservative option on this list. It works exactly like traditional ls, it just has all the bugs fixed, proper color support, human readable sizes, and all the modern flags that BSD ls is missing.

Features you get with gls that don't exist in default Mac ls:

  • Proper consistent ANSI color output
  • `-h` flag for human readable sizes
  • `--group-directories-first` sorting
  • Full support for all modern ls flags

If you don't want to change your workflow at all but just want a better version of the exact tool you already use, this is the option for you. No new keys to learn, no weird new features, just ls that actually works properly.

9. ls Deluxe

ls Deluxe is a modern rewrite of ls written in Rust, focused entirely on speed and backwards compatibility. It is currently the fastest ls alternative available, beating even default ls on most benchmarks.

This tool is built for people who regularly work with directories containing 100,000+ files. While exa and lsd will hang for 10+ seconds opening these folders, ls Deluxe will render the full list in under 100ms.

Tool Time to list 100,000 files
Default ls 210ms
ls Deluxe 92ms
eza 1280ms
exa 2740ms

Unless you work with extremely large directories, you will probably never notice the speed difference. But if you do, this is the only alternative that will not slow you down. It maintains perfect backwards compatibility with all ls flags.

10. walk: Minimal Navigation Ls Alternative

walk is a new ls alternative built for one single job: fast navigation. It does not have icons, git status, colors or any extra features. It just lets you browse your filesystem as fast as humanly possible.

When you run walk you get a clean list of files. You type letters to filter, press enter to go into a folder, press backspace to go up one level. That is the entire feature set. No other keys, no settings, nothing to configure.

The core design rules for walk:

  • Never show anything the user did not ask for
  • Never make the user wait
  • Never require memorizing keyboard shortcuts
  • Work exactly the same on every system

If you hate bloat and just want to get around your folders fast, this is the tool for you. It is less than 1MB in size, runs instantly, and will never surprise you with unexpected behavior.

11. broot: Smart Directory Overview

broot is the most unique ls alternative on this list. It does not just list files, it analyses your directory and shows you the most important things first. It is built for people who regularly open folders they have never seen before.

When you open broot it will automatically hide boring system files, sort important files to the top, and show you a summary of what exists in every subfolder. You can search across the entire directory tree instantly.

Common use cases for broot:

  1. Exploring a new project repository for the first time
  2. Cleaning up a messy downloads folder
  3. Finding files you forgot the name of
  4. Getting an overview of a large folder structure

Broot has the steepest learning curve on this list, but it also offers capabilities no other tool has. Many users install it alongside another drop-in ls replacement, and only call it when they need its special features.

At the end of the day, there is no single perfect replacement for ls, and that is a good thing. Every tool on this list exists to solve a specific set of frustrations, and you can pick exactly what fits how you work. You do not need to switch permanently on day one — install one option this evening, test it for 3 days, and only make the alias permanent if it actually makes your life easier.

Most people never change default tools once they learn them, even when far better options exist. The original ls will always be there if you need it, but you owe it to yourself to try at least one of these alternatives. If you end up liking even one small feature, you will save thousands of tiny frustrations over the years you spend working in the terminal.