One of the concepts I want to emphasize is the advantage of using small “composable” Unix utilities. To this end, I use
rg for all kinds of operations that search or list files. One advantage of this approach is that convenient rules setup in
rg, e.g., ignoring
.git directories and files in
.gitignore, then propagate over every file and search operation I perform.
But something that’s always bothered me is since
rg doesn’t support finding directories (understandably), I lose
rg semantics when searching for directories, and instead get decades old
find semantics, which don’t do smart things like ignoring things that probably should be ignored.
So I was delighted when I followed the
ripgrep GitHub issue to the
fzf README to
fd. A utility that does exactly what I’m looking for, find directories while replicating the smart take on semantics used by
rg (and other modern unix utilities).
Here’s an example of my favorite use of this, replacing the built-in
FZF_ALT_C_COMMAND, which enables a key command to fuzzy filter a directory to
cd to recursively.