So verwenden Sie den fd-Befehl unter Linux

Unter Linux ist fd eine einfachere Alternative zum Befehl find. Es hat eine vereinfachte Syntax, verwendet vernünftige Standardwerte und verfügt über ein integriertes, vernünftiges Verhalten. Lassen Sie es uns auf Herz und Nieren prüfen.

fd versus find: Was ist der Unterschied?

Die fd Befehl soll nicht ersetzen der traditionelle find-Befehl, der war auf Linux, nun, für immer. Stattdessen versucht fd, die meisten gängigen Verwendungszwecke von find auf einfachere Weise zu erfüllen – und ist oft acht- oder neunmal schneller als find. Sie können einige seiner Benchmarks auf den Projektseiten sehen GitHub-Repository-Seite.

fd hat eine kolorierte Ausgabe, ähnlich der einiger ls-Modi. Es ist rekursiv, durchsucht jedoch standardmäßig keine versteckten Verzeichnisse. Es weiß über Git und ignoriert automatisch alle Muster in Ihrer „.gitignore“-Datei.

fd unterscheidet standardmäßig zwischen Groß- und Kleinschreibung. Wenn Ihr Suchmuster jedoch einen Großbuchstaben enthält, arbeitet fd in einem Modus, bei dem die Groß-/Kleinschreibung beachtet wird. Natürlich können Sie die Standardeinstellungen überschreiben, aber in vielen Fällen funktionieren sie zu Ihren Gunsten.

fd installieren

Seit Ubuntu 19.04 (Disco Dingo) können Sie fd direkt installieren, indem Sie das offiziell gepflegte Paket mit apt-get aufrufen. Wenn Sie eine ältere Version von Ubuntu verwenden, überprüfen Sie die Installationsanweisungen auf der Git-Hub-Seite.

Geben Sie Folgendes ein:

sudo apt-get install fd-find

In Ubuntu lautet der Befehl fdfind, um einen Namenskonflikt mit einem anderen vorhandenen Dienstprogramm zu vermeiden. Wenn es fd sein soll, können Sie einen Alias ​​einrichten:

alias fd=fdfind

Um den Alias ​​persistent zu machen, damit er auch nach Neustarts verfügbar bleibt, fügen Sie ihn in Ihre Datei „.bashrc“ oder „.bash_aliases“ ein.

Um fd auf Fedora zu installieren, geben Sie diesen Befehl ein:

sudo dfn install fd-find

Geben Sie auf Manjaro Folgendes ein:

sudo pacman -Syu fd

fd gegen fdfind

Um Verwirrung zu vermeiden, haben wir den Befehl auf unserem Ubuntu-Test-PC mit seinem Standardnamen fdfind belassen. fd und fdfind sind genau die gleichen Befehle, wie Sie im folgenden Beispiel sehen werden (wenn Sie fdfind bitten, seine Version anzuzeigen, nennt es sich „fd“):

fdfind --version

Wir nennen den Befehl „fed“, aber in den Beispielen verwenden wir das Ubuntu „fdfind“. Auf anderen Linux-Distributionen können Sie „fd“ anstelle von „fdfind“ eingeben, um ein paar Tastenanschläge zu sparen.

  So verwenden Sie usermod, um Benutzer zu Gruppen in Linux hinzuzufügen

Einfache Suche mit fd

Wenn Sie fd ohne Befehlszeilenoptionen verwenden, verhält es sich ein wenig wie ls, außer dass es standardmäßig Dateien in Unterverzeichnissen auflistet.

Geben Sie Folgendes ein:

fdfind

Die Ausgabe erscheint in verschiedenen Farben für verschiedene Dateitypen und Verzeichnisse.

Um Dateien eines bestimmten Typs anzuzeigen, verwenden Sie die Option -e (Erweiterung). Beachten Sie, dass Sie der Erweiterung keinen Punkt (.) voranstellen müssen und die Groß-/Kleinschreibung nicht beachtet werden muss.

Sie könnten beispielsweise Folgendes eingeben:

fdfind -e png

Jetzt sind die einzigen aufgelisteten Dateien PNG-Bilddateien.

Um nach einer einzelnen Datei zu suchen, geben Sie ihren Namen wie folgt in die Befehlszeile ein:

fdfind index.page

Die Datei wird gefunden und befindet sich zufällig in einem Unterverzeichnis. Wir mussten fd nicht anweisen, rekursiv zu suchen.

Damit die Suche in einem bestimmten Verzeichnis beginnt, geben Sie einen Dateipfad in die Befehlszeile ein. Der folgende Befehl startet eine Suche im Verzeichnis „/etc“ und sucht nach Dateien, die „passwd“ im Dateinamen enthalten:

fdfind passwd /etc

Hier suchen wir nach allen C-Quellcodedateien, die „coord“ im Dateinamen enthalten:

fdfind -e c coord

Es wurden zwei übereinstimmende Dateien gefunden.

fd und Git

Git ist sehr beliebt Quellcode-Versionskontrollsystem. Wenn Sie Git auf Ihrem Computer verwenden, verwenden Sie wahrscheinlich „.gitignore“-Dateien, um Git mitzuteilen, mit welchen Dateien es sich befassen soll und welche es ignorieren kann. Standardmäßig respektiert fd die Einstellungen in Ihren „.gitignore“-Dateien.

  So hosten Sie einen Minecraft-Server unter Linux

In diesem Verzeichnis haben wir ein Git-Repository und die Datei „.gitignore“. Wir geben folgendes ein:

ls -adl .git*

Lassen Sie uns fd bitten, alle Dateien aufzulisten, deren Dateiname „coord“ enthält. Wir wiederholen dann die Suche und verwenden die Option -I (kein ignorieren). Dies weist fd an, die Einstellungen in der Datei „.gitignore“ zu ignorieren und jede übereinstimmende Datei zu melden.

Um all dies zu tun, geben wir Folgendes ein:

fdfind coord
fdfind coord -I

Die beiden zusätzlichen Dateien im zweiten Ergebnissatz sind Objektdateien. Diese werden beim Kompilieren eines Dateiprogramms erstellt. Sie werden dann vom Linker verwendet, um die endgültige ausführbare Version des Programms zu erstellen.

Objektdateien werden normalerweise von Programmen zur Quellcode-Versionskontrolle ignoriert. Sie werden jedes Mal neu generiert, wenn Sie Ihr Programm kompilieren, sodass Sie keine Kopien davon speichern müssen. Es gibt einen Eintrag in der Datei „.gitignore“, der Git anweist, Objektdateien zu ignorieren, und fd ignoriert sie standardmäßig auch.

Die Option -I (kein ignorieren) zwingt fd, alles zurückzugeben, was es findet, anstatt sich von der Datei „.gitginore“ leiten zu lassen.

Dateitypen und Groß-/Kleinschreibung

Sie können fd bitten, nach Verzeichnissen, Dateien (einschließlich ausführbarer und leerer Dateien) und symbolischen Links zu suchen. Sie können dies tun, indem Sie die Option -t (Typ) verwenden, gefolgt von einem der folgenden Buchstaben:

f: Datei.
d: Verzeichnis.
l: Symbolischer Link.
x: Ausführbare Datei.
e: Leere Datei.

Im Folgenden wird nach einem Verzeichnis namens images gesucht:

fdfind -td images

Es wird eine Übereinstimmung gefunden, ein Unterverzeichnis niedriger als das aktuelle.

Sehen wir uns an, wie die Groß-/Kleinschreibung bei Suchmustern funktioniert. Wir geben Folgendes ein, um zuerst nach Dateien zu suchen, deren Dateinamen „geo“ enthalten, und dann nach Dateien, die „Geo“ in ihren Dateinamen enthalten:

fdfind -tf geo
fdfind -tf Geo

Im ersten Befehl haben wir ein Suchmuster in Kleinbuchstaben verwendet, was dazu führte, dass fd die Groß-/Kleinschreibung nicht beachtete. Das bedeutet, dass sowohl „Geo“ als auch „Geo“ gültige Übereinstimmungen sind.

  So installieren Sie Linux auf einem Chromebook mit Crouton

Unser zweiter Befehl enthielt einen Großbuchstaben, der dazu führte, dass fd auf Groß-/Kleinschreibung achtete. Dies bedeutet, dass nur „Geo“ eine gültige Übereinstimmung ist.

Befehlsausführung

Mit dem Befehl fd können Sie einen weiteren Befehl starten und für jede der gefundenen Dateien ausführen.

Sagen wir, wir wissen, dass es eine gibt Zip-Datei irgendwo in unserem Quellcode-Verzeichnisbaum. Wir können mit dem folgenden Befehl danach suchen, der nach Dateien mit der ZIP-Erweiterung sucht:

fdfinf -e zip

Mit der Option -x (exec) können Sie jede gefundene Datei an einen anderen Befehl übergeben, um von dieser verarbeitet zu werden. Zum Beispiel können wir Folgendes eingeben, um die Dienstprogramm entpacken um unsere ZIP-Datei zu entpacken (das „{}“ ist ein Platzhalter, der die gefundene Datei repräsentiert):

fdfind -e zip -x unzip {}

Dadurch wird die Datei im aktuellen Arbeitsverzeichnis entpackt. Wenn es in das Verzeichnis mit der ZIP-Datei entpackt werden soll, können wir einen der folgenden Platzhalter verwenden:

{}: Der vollständige Dateipfad und der Name der gefundenen Datei.
{/}: Der Dateiname der gefundenen Datei.
{//}: Das Verzeichnis, das die gefundene Datei enthält.
{/.}: Der Dateiname der gefundenen Datei ohne Erweiterung.

Damit unsere ZIP-Datei in dem Verzeichnis gefunden und entpackt wird, das sie enthält, können wir die Option unzip -d (Verzeichnis) verwenden und den Platzhalter für das übergeordnete Verzeichnis ({//}) übergeben:

fdfind -e zip -x unzip {} -d {//}

Die ZIP-Datei wird dann in ihrem übergeordneten Verzeichnis lokalisiert und entpackt.

Ihre Go-to-Find?

Da es die gängigsten Anwendungen so einfach abdeckt, kann fd leicht zu Ihrem Suchbefehl werden. Wann immer Sie die erweiterten Funktionen benötigen, können Sie jederzeit zu diesem erfahrenen Veteranen zurückkehren.