Modern Replacments to POSIX Commands Revision as of Friday, 23 May 2025 at 19:37 UTC

File System Navigation & Management

Old Modern Language
cat bat Rust
cd zoxide Rust
du dust, dua Rust
find fd Rust
ls eza, lsd Rust
rm trash Go
time hyperfine Rust

System Monitoring

Old Modern Language
top/htop bottom (btm), gtop Rust, JavaScript
ps procs Rust

Text Processing & Search

Old Modern Language
awk angle-grinder Rust
awk/csv xsv Rust
awk/cut choose Rust
awk/cut hck Rust
awk/sed miller (mlr) Go
diff delta Rust
grep rg, ag, ugrep Rust, C, C++
sed sd Rust
JSON tools jq, jless C, Rust
YAML tools yq Go
Data selector dasel Go

Network Tools

Old Modern Language
dig doggo Go
dig/nslookup dog Rust
whois whois.rs Rust
curl xh Rust
netstat bandwhich Rust
ping gping Rust
DNS monitoring dnspeep Rust
httpie xh Rust

File & Directory Tools

Old Modern Language
find fd-find Rust
find/Various fzf Go
Rename tools rnr Rust

Text Viewing & Editing

Old Modern Language
hexdump hexyl Rust
Hex editors hx (hex) Rust

Other

Old Modern Language
git gitui Rust

Note: You’ll need to ssh-add ~/.ssh/key_id for gitui to push to remote on macOS

There’s uutils/coreutils which just replaces all GNU Coreutils with Rust reimplemntations 🤷‍♂️ Seems risky. They do note that “some options might be missing or different behavior might be experienced”. I have a lot bash scripts that depend on stable implementations and won’t be using this one (again, they do note that “differences with GNU are treated as bugs”). Maybe one day.

fselect allows you to search your filesystem with SQL-like queries!