fd fast find replacement

The old Unix tool chain is fine. The problem is that it has not moved in decades, and the small terminal jobs a developer does 50 times a day (find a file, search in files, list a directory, jump to a project) all have better replacements now. Every one is open source, ships as a single binary, and is small enough that installing all eight of them together takes less disk than a Chrome update.

We tested 8 replacement CLI tools on Windows, macOS, and Linux. Each pick actually replaces its classic counterpart in daily use and is maintained on GitHub with real activity.

What to look for in a modern CLI tool

The bar is not “cool feature list”. It is “will you keep using this in a month”.

Quick comparison table

App Best for Platforms Free plan Starting price/mo Rating
fd Faster and friendlier find Windows, macOS, Linux Fully free Free Highly rated on GitHub
ripgrep Faster and friendlier grep Windows, macOS, Linux Fully free Free Community standard
bat cat with syntax highlighting Windows, macOS, Linux Fully free Free Widely adopted
eza Modern ls replacement Windows, macOS, Linux Fully free Free Active fork of exa
fzf Fuzzy finder for anything Windows, macOS, Linux Fully free Free Long-running favorite
jq JSON transformation Windows, macOS, Linux Fully free Free Ubiquitous in scripts
zoxide Smarter cd Windows, macOS, Linux Fully free Free Broad developer adoption
btop Cleaner htop and system monitor Windows, macOS, Linux Fully free Free High Reddit visibility

The apps

1. fd – Best for finding files quickly

fd replaces find with saner defaults: automatic gitignore respect, colorized output, and a syntax that does not require reading a man page. fd config recursively finds every file with “config” in the name in the current directory. That is what find should have looked like all along.

Where it falls short: Some find-native features (-exec semantics, complex conditionals) are still faster in the classic tool.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: The daily driver for filename searches once you install it.

2. ripgrep – Best for searching inside files

ripgrep (rg) is grep, but ordersof-magnitude faster on large repos and with far better defaults: gitignore respect, colored output, and Unicode-aware matching. rg "authenticate" inside a 500,000-line codebase returns in a fraction of a second.

Where it falls short: Some POSIX-specific regex features work differently; edge cases require the -P PCRE flag.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: The single tool that changes daily codebase navigation the most.

3. bat – Best for reading files in the terminal

bat is cat with syntax highlighting, line numbers, and pager integration. Reading a config file, a script, or a small source file in the terminal becomes readable rather than a wall of monochrome text. Aliased to cat in most setups without breaking downstream commands.

Where it falls short: Piping into other tools sometimes needs --plain to strip decorations.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: The most-quality-of-life-per-byte install on this list.

4. eza – Best modern ls replacement

eza is the maintained fork of exa. Colorized long-listing output, tree view (-T), Git status column, human-readable sizes by default. A single install and one shell alias replaces the mental cost of ls -lha --color=auto.

Where it falls short: Some flags differ from ls; a rare script that runs ls and parses output will need adjustment.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: The straight replacement for ls on any machine you touch daily.

5. fzf – Best fuzzy finder for anything

fzf is the interactive fuzzy finder that other tools plug into. Type Ctrl-R in a shell configured with fzf and command history becomes searchable. Pipe any list into fzf and it becomes interactively filterable. Vim, Neovim, and every modern editor has an fzf integration.

Where it falls short: Learning curve for the keybind ecosystem takes a week.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: The one tool that lifts every other tool it plugs into.

6. jq – Best for command-line JSON

jq is the tool for extracting values out of JSON in a pipeline. curl api.example.com | jq '.users[].email' is a one-liner instead of a script. Comes preinstalled or trivially installable everywhere, and the query language rewards a few hours of learning with a lifetime of one-liners.

Where it falls short: Query syntax is its own thing to learn; expect a “not intuitive” phase before it clicks.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: The one tool that turns “let me write a script” into “let me pipe it”.

7. zoxide – Best smarter cd

zoxide learns which directories you actually spend time in and lets you jump there with a partial name. z proj after using /home/you/work/project-name/backend a few times jumps directly there from anywhere in the filesystem. Works with any shell.

Where it falls short: Requires a shell hook and a bit of history before it becomes useful.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: Ten seconds saved per project switch adds up faster than you think.

8. btop – Best system monitor

btop is the terminal system monitor with the best default look and the smoothest interaction. CPU, memory, disk, network, per-process, all in one screen with mouse support and configurable themes. Uses less CPU than htop while showing more.

Where it falls short: On Windows, some sensors are still limited compared to Linux.

Pricing:

Platforms: Windows, macOS, Linux

Download: GitHub

Bottom line: The pretty, useful replacement for htop or top.

How to pick the right one

FAQ

Are these tools drop-in replacements for the classic Unix tools? Mostly. bat and eza alias easily. ripgrep, fd, jq, and zoxide are not literal replacements; the syntax is different but the workflows are strictly better.

Do these work on Windows? Yes. Every tool on this list has official Windows builds, either as a single .exe or via Scoop and Winget.

Can I install all of them at once? On macOS: brew install fd ripgrep bat eza fzf jq zoxide btop. On Ubuntu, most are in apt, with bat, eza, and zoxide sometimes needing a fresher source. On Windows, Scoop’s main bucket has them all.

Do they replace shell scripts? They make many shell scripts short enough to be a one-liner. They do not replace scripting itself; they just raise the ceiling on what fits on one line.

Which of these use the most disk space? All of them together are well under 100 MB installed. Individually most are 2 to 8 MB single binaries.

Are they safe to install from GitHub? Every project on this list is well-established, actively maintained, and downloaded by millions. Install from the official GitHub releases or your platform’s package manager, not from mirror sites.