➣  This post was meaningfully revised at 2024-06-06 @ 06:30 PM EDT. The previous revision is here, diff here. (See update history.)
➣  This post is expected to evolve over time. You can subscribe to ongoing updates here.

I've found ripgrep to be an invaluable tool. At some level it's just grep, but its speed and ergonomics make it something else. I find things much more quickly. In combination with projectile, it gives me a fast project-wide find, reducing one of the advantages of commercial IDEs over my humble emacs.

Today, Bill Mill points me to a command line tool called fzf which looks like kind of a command-line Swiss army knife. It certainly makes sorting through very long find . output a breeze.

Some of Bill's scripts use a find replacement called fd, which I plan to take a look at.

I think this is an interesting trend, taking venerable UNIX command-line tools and rethinking, reimplementing them with modern languages and the decades of experience since that first, revolutioary, burst of command-line creativity in the early UNIX days.

I'll let this post become a "sprout" from which I can track these kinds of tools as I encounter them.

  • fd
    A modern retake on find I haven't played with yet.

  • fzf
    A fuzzy-matching tool for interactively sorting through large command line and command completion outputs. See Bill Mill.

  • rg
    "ripgrep". A new take on grep, super fast, seachers directories recursively, by default excluding .git and whatever is .gitignore-d.

I'll add more as I, um, fd them!

p.s. apparently there's a DJ called Neonix! Sorry! I'm using the, er, neologism to refer to neo-UNIX.

Update 2024-06-06: Kartik Agaram's points me to Bill Mill's "modern unix tools" page. Which itself contains a link to a "Modern Unix" collection by Ibraheem Ahmed. So much to play with!

Major revisions:

  • 2024-06-06 @ 06:30 PM EDT — Add Kartik Agaram's pointer to Bill Mill's "modern unix tools" (diff)
  • 2024-06-06 @ 03:35 PM EDT — Initial publication.
Timestamps represent "major", substantative revisions. There may have been subsequent typo fixes and language reworkings within a major revision, after the time displayed. For a more complete and fine-grained update history, you can view the git repository commit history. The most recent minor modification of this entry occurred 2024-06-06 @ 06:23 PM EDT.