Ab und zu kommt jemand auf die Idee, eine Alternative zu den klassischen Unix-Tools zu erfinden. Zwei Beispiele dafür, die wir bereits vorgestellt haben, sind "ack", das einige Features bietet, die "grep" nicht kennt, oder "cuts", das in vielen Fällen einfacher zu verwenden ist als "cut" oder "awk".
Ein relativ neues Tool namens "fd" will eine Alternative zu "find" sein. Es geht davon aus, dass der häufigste Anwendungsfall ist, nach einem Dateinamen zu suchen und bietet deshalb diesen Fall als Default. Statt "find -iname ...", sucht "fd" einfach so nach einer Datei oder einem Verzeichnis und ignoriert dabei Groß- und Kleinschreibung:
fd name
Die Ausgabe unterlegt es dabei farblich. Per Default ignoriert es sogenannte "versteckte" Dateien (mit führendem Punkt) und Namensmuster, die in der Datei ".gitignore" im aktuellen Verzeichnis aufgeführt sind. Abschalten lässt sich dieses Verhalten mit "--hidden" und "--no-ignore". Groß- und Kleinschreibung beachtet "fd" automatisch, wenn im gesuchten Muster ein Großbuchstabe vorkommen ("smart-case"). Nach File-Extensions sucht "fd" mit dem Schalter "-e".
Da "fd" in der compilierten Programmiersprache Rust geschrieben ist, ist es nicht langsamer als "find", sondern liegt in den Benchmarks des Programmautors sogar vorne.
Über die Grundfunktionen hinaus bietet "fd" auch noch einen Ausführungsmechanismus ähnlich wie GNU Parallel. Dazu muss es mit dem Schalter "-x" aufgerufen werden. So entpackt der folgende Aufruf alle gefundenen Zip-Dateien:
fd -e zip -x unzip
Dieses Kommand konvertiert alle JPG-Dateien in PNGs:
fd -e jpg -x convert {} {.}.png
Binaries des Tools sind auf der Github-Seite für Windows, Linux und macOS zu finden. Darüber hinaus gibt es auch Pakete für zahlreiche weitere Systeme wie Arch Linux, NixOS und FreeBSD.