So verwenden Sie den fd-Befehl unter Linux

Veröffentlicht: 2022-01-29
Ein Terminalfenster auf einem Linux-PC mit einem Desktop im Ubuntu-Stil.
Fatmawati Achmad Zaenuri/Shutterstock

Unter Linux ist fd eine einfachere Alternative zum find -Befehl. Es hat eine vereinfachte Syntax, verwendet vernünftige Standardwerte und hat ein eingebautes vernünftiges Verhalten. Nehmen wir es auf Herz und Nieren.

fd versus find: Was ist der Unterschied?

Der fd Befehl ist nicht dazu gedacht, den traditionellen find -Befehl zu ersetzen, der schon seit Ewigkeiten unter Linux vorhanden ist. Stattdessen versucht fd , die meisten gängigen Verwendungen von find auf einfachere Weise zu erfüllen – und es ist oft acht- oder neunmal schneller als find . Sie können einige seiner Benchmarks auf der GitHub-Repository-Seite des Projekts sehen.

10 grundlegende Linux-Befehle für Anfänger
VERWANDTE 10 grundlegende Linux-Befehle für Anfänger

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

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

VERWANDT: So verwenden Sie alle Suchbefehle von Linux

fd installieren

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

Geben Sie Folgendes ein:

 sudo apt-get install fd-find 

Anzeige

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

 alias fd=fdfind 

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

VERWANDT: So erstellen Sie Aliasse und Shell-Funktionen unter Linux

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

 sudo dfn installiere fd-find 

Geben Sie in Manjaro Folgendes ein:

 sudo pacman-Syu fd 

fd versus fdfind

Um Verwirrung zu vermeiden, haben wir den Befehl mit seinem Standardnamen fdfind auf unserem Ubuntu-Test-PC 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 selbst „fd“):

 fdfind --version 

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

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.

Anzeige

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

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 -ec koord 

Es wurden zwei übereinstimmende Dateien gefunden.

fd und Git

Git ist ein äußerst beliebtes Versionskontrollsystem für Quellcode. Wenn Sie Git auf Ihrem Computer verwenden, verwenden Sie wahrscheinlich „.gitignore“-Dateien, um Git mitzuteilen, um welche Dateien es sich kümmern soll und welche es ignorieren kann. Standardmäßig respektiert fd die Einstellungen in Ihren „.gitignore“-Dateien.

Anzeige

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

 ls -adl .git* 

Lassen Sie uns fd bitten, alle Dateien aufzulisten, die „coord“ im Dateinamen enthalten. Wir wiederholen dann die Suche und verwenden die Option -I (nicht ignorieren). Dies weist fd an, die Einstellungen in der „.gitignore“-Datei zu ignorieren und jede übereinstimmende Datei zu melden.

Um all dies zu tun, geben wir Folgendes ein:

 fdfind-Koord
 fdfind Koord -I 

Die beiden zusätzlichen Dateien im zweiten Ergebnissatz sind Objektdateien. Diese werden erstellt, wenn ein Dateiprogramm kompiliert wird. Sie werden dann vom Linker verwendet, um die endgültige ausführbare Version des Programms zu erstellen.

Objektdateien werden normalerweise von Quellcode-Versionskontrollprogrammen 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 „.gitignore“-Datei, der Git anweist, Objektdateien zu ignorieren, und fd ignoriert sie standardmäßig auch.

Die Option -I (nicht 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) und symbolischen Links zu suchen. Sie können dies tun, indem Sie die Option -t (Typ) gefolgt von einem der folgenden Buchstaben verwenden:

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

Das Folgende sucht nach einem Verzeichnis namens images:

 fdfind -td Bilder 

Anzeige

Eine Übereinstimmung wird 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, die „Geo“ in ihren Dateinamen enthalten, und dann nach denen, 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 Groß- und Kleinschreibung nicht berücksichtigte. Das bedeutet, dass sowohl „Geo“ als auch „Geo“ gültige Übereinstimmungen sind.

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

Befehlsausführung

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

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

 fdfinf -e zip 

Anzeige

Mit der Option -x (exec) können Sie jede gefundene Datei an einen anderen Befehl übergeben, der von diesem verarbeitet wird. Beispielsweise können wir Folgendes eingeben, um das Unzip-Dienstprogramm zum Entpacken unserer ZIP-Datei aufzurufen (das „{}“ ist ein Platzhalter, der die gefundene Datei darstellt):

 fdfind -e zip -x entpacken {}

Dadurch wird die Datei im aktuellen Arbeitsverzeichnis entpackt. Wenn wir möchten, dass es in das Verzeichnis entpackt wird, in dem sich die ZIP-Datei befindet, können wir einen der folgenden Platzhalter verwenden:

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

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

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

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

Ihr Go-to-Find?

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

RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten