So verwenden Sie den fd-Befehl unter Linux
Veröffentlicht: 2022-01-29 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.
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
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.
Um Dateien eines bestimmten Typs anzuzeigen, verwenden Sie die Option
(Erweiterung). Beachten Sie, dass Sie der Erweiterung keinen Punkt (.) voranstellen müssen und auch nicht zwischen Groß- und Kleinschreibung unterscheiden.-e
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.
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
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
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
.
Linux-Befehle | ||
Dateien | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · konvertieren · rclone · shred · srm | |
Prozesse | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Vernetzung | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
RELATED: Beste Linux-Laptops für Entwickler und Enthusiasten