Luke Oliff.

The Rust CLI Tools That Replaced My Coreutils

·TIL·3 min read·Luke Oliff
TL;DR

I swapped grep, find, cat, ls, cd and diff for ripgrep, fd, bat, eza, zoxide and delta. Some earned the muscle-memory rewire, some are just habit. Here is the audit after a year on them.

I’ve spent about a year running rust cli replacements for the standard Unix tools, and the honest verdict is that some earned the rewire and some are just habit I could drop tomorrow. The roundups doing the rounds in August 2026, the usual “modern CLI toolchain” lists, treat all six as obvious wins. They aren’t all equal.

The list is always the same six: ripgrep for grep, fd for find, bat for cat, eza for ls, zoxide for cd, and delta for diff. All six are written in Rust and all six are fast. That doesn’t mean all six deserve a permanent spot.

Which rust cli replacements actually earned it

ripgrep is the one I’d fight to keep. It respects .gitignore by default, searches a large repo in a fraction of the time GNU grep takes, and the output is readable without flags. I reach for rg without thinking now, and dropping back to grep on a box that doesn’t have it feels like typing with gloves on.

fd is the second keeper. find . -name '*.ts' -not -path './node_modules/*' becomes fd -e ts. The defaults match how I actually search: skip hidden files, skip ignored paths, sane pattern syntax. I go deeper on it in fd is the find replacement worth memorizing.

zoxide surprised me. It learns which directories you visit and lets you jump with z proj instead of a three-level cd. I resisted it for months as a gimmick. Now the old habit is gone and I can’t go back.

The ones that are mostly habit

bat is lovely and I keep it, but let’s be honest about what it is: cat with syntax highlighting and a pager. When I’m piping into something I still want plain cat, and bat’s line numbers and git gutter get in the way about as often as they help. It earns its place, barely, mostly as the previewer for fzf.

eza is a nicer ls. Colours, icons, a --tree mode I do use. But I’d struggle to claim it changed anything about how I work. It’s a good paint job on a tool that was already fine.

delta is the odd one out. It makes git diff genuinely readable, side by side and syntax-highlighted, and I’ve had it wired into my git config for two years. It isn’t really a coreutils replacement though, it’s a git pager. The roundups lump it in anyway.

The honest scoreboard

Three of the six changed how I work: ripgrep, fd, zoxide. Two are quality-of-life I’d miss but survive without: bat and delta. One, eza, I could uninstall today and not notice by Friday.

If you’re starting from a clean machine, install ripgrep and fd first, add zoxide once you trust it, and treat the rest as taste. The “replace all your coreutils” framing oversells it. You’re really replacing three tools that matter and three that are pleasant.