Fundamentals 15 min read

Top 14 Modern ls Alternatives to Supercharge Your Linux Workflow

This article introduces fourteen powerful command‑line tools that replace or extend the traditional ls command, covering their features, installation methods across multiple operating systems, and practical usage examples to improve file navigation and management in Linux environments.

macrozheng
macrozheng
macrozheng
Top 14 Modern ls Alternatives to Supercharge Your Linux Workflow

In Linux, the

ls

command is widely used to list directory contents, often with color highlighting.

1. lsd

lsd is a Rust‑written replacement for

ls

that adds colors, icons, tree view and more. It can be installed on Arch Linux, Fedora, macOS, FreeBSD, Windows, Android, Ubuntu, Debian and other systems.

<code># curl -LO https://github.com/Peltoche/lsd/releases/download/0.21.0/lsd_0.21.0_amd64.deb
# dpkg -i lsd_0.21.0_amd64.deb
</code>

2. broot

broot is another Rust‑based ls alternative that provides a terminal file manager with a tree‑view navigation mode. Its features include directory overview, quick

cd

, hierarchical search, file preview, custom shortcuts, space‑usage sorting, Git status checking, and more.

Typical usage:

<code># br -sdph
</code>
-s

: show file size

-d

: show file date

-p

: show file permissions

-h

: show hidden files

3. zoxide

zoxide replaces the built‑in

cd

command with a smarter, history‑driven directory jumper. It remembers frequently visited directories, allowing you to jump with just a few keystrokes.

<code># zoxide /etc
# z e   # expands to /etc
</code>

4. fzf

fzf is a fast, dependency‑free interactive fuzzy finder that works with any list, file set, command history, process list, hostname list, bookmarks, or git commits. It can be combined with the

fd

utility for powerful file searches.

<code># curl -LO http://cn.archive.ubuntu.com/ubuntu/pool/universe/f/fzf/fzf_0.24.3-1_amd64.deb
# dpkg -i fzf_0.24.3-1_amd64.deb
</code>

5. ripgrep (rg)

ripgrep is a line‑oriented search tool that serves as a faster alternative to

grep

. It recursively searches for regex patterns and runs on Windows, Linux and macOS.

<code># apt install ripgrep
# rg yum *.sh
</code>

6. procs

procs is a Rust‑based replacement for

ps

that provides colored, multi‑column output with keyword search. It runs on Linux, macOS and Windows.

Installation examples:

<code># sudo pacman -S procs
# sudo dnf install procs
# sudo rpm -i https://github.com/dalance/procs/releases/download/v0.12.1/procs-0.12.1-1.x86_64.rpm
</code>
<code># procs
</code>

Search options include logical operators such as

--and

,

--or

,

--nand

, and

--nor

.

7. diff‑so‑fancy

diff‑so‑fancy is a Node‑based tool that beautifies

git diff

output, making changes easier to read and helping improve code quality.

<code># npm install -g diff-so-fancy
# git diff --color | diff-so-fancy
</code>

8. delta

delta is a syntax‑highlighting pager for

git

,

diff

and

grep

output. It offers theme‑based language highlighting, side‑by‑side view, line numbers, merge‑conflict display, and Git’s

--color-moved

support.

9. mcfly

mcfly replaces the traditional

Ctrl+R

reverse‑history search with a full‑screen, Rust‑based, fast and safe alternative. It supports fuzzy matching with

%

and can clear entries from its database or the shell history.

10. choose

choose is a Rust‑based alternative to

cut

that offers concise syntax similar to Python slicing, supports negative and zero indexing, and can be faster than

cut

and

awk

for long inputs.

<code># cat 2022.txt | choose 1
# choose 1 -i 2022.txt
</code>

11. httpie

httpie is a user‑friendly command‑line HTTP client that simplifies testing and debugging APIs with colored, formatted output.

<code># http PUT example.com hello=world
# http --offline pie.dev/post hello=offline
</code>

12. curlie

curlie combines the ergonomics of httpie with the full feature set of curl, printing headers to

stderr

and providing dynamic, unbuffered output.

<code># curlie httpbin.org/headers
# curlie -v PUT httpbin.org/status/201 X-API-Token:123 name=John
</code>

13. xh

xh is a fast, friendly HTTP client written in Rust that supports HTTP/2, can be compiled to a single static binary, and offers concise syntax for common requests.

<code># xh httpbin.org/json
# xh post httpbin.org/post name=ahmed age:=24
# xh -d httpbin.org/json -o test.json
</code>

14. dog

dog is an open‑source DNS client that serves as a colorful alternative to

dig

. It supports UDP, TCP, DNS‑over‑TLS and DNS‑over‑HTTPS, and can query 16 record types.

<code># dog example.net
# dog example.net MX
# dog example.net MX @1.2.3.4 -T
</code>
Rustproductivitycommand line toolsterminalLinux utilitiesls alternatives
macrozheng
Written by

macrozheng

Dedicated to Java tech sharing and dissecting top open-source projects. Topics include Spring Boot, Spring Cloud, Docker, Kubernetes and more. Author’s GitHub project “mall” has 50K+ stars.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.