Der Befehl find -exec unter Linux

Der Befehl find -exec unter Linux

Ihr Linux -System besteht aus Tausenden von Dateien. Die manuelle Suche nach ihnen ist ein Ärger. In solchen Fällen bietet Ihr Linux -System zwei verschiedene Befehle, um eine bestimmte Datei zu finden: den Befehl Suchen und den Befehl Find. Insbesondere der Befehl zum Finden ist ein großartiges Tool, wenn Sie Dateiattribute angeben und Ihre Suche nach einer Datei fein stimmen möchten. Mit dem Befehl Find können Sie sogar auf die Datei einwirken, die Sie mit dem Exec -Argument finden. In diesem Tutorial werden wir den Befehl find -exec diskutieren.

Der Befehl Find

Der Befehl find ist langsamer als der Befehl scannen, sucht jedoch das gesamte Dateisystem live! Darüber hinaus können Sie mit dem Befehl Find Ihre Suche mit einer großen Anzahl von Attributen optimieren. Dies bedeutet auf Englisch, dass Sie Ihre Suche mit fast jedem gewünschten Parameter feinstimmen können. Beispielsweise können Sie nach Dateien mit dem Namen der Datei, der Größe der Datei, der Berechtigung der Datei, der Änderungszeiten der Datei usw. suchen. Grundsätzlich ist es ein sehr nützlicher Befehl!

Das Grundformat des Befehls zum Finden lautet wie folgt:

Finden Sie [Ort zum Suche]

Ex:

Finden Sie / -name Geheimnis.txt

Hier repräsentiert die / repräsentiert den Ort, an dem Sie nach der gewünschten Datei suchen können, und wir haben sie gebeten, nach einer Datei mit dem Namen des Geheimnisses zu suchen.txt.

Finden Sie Exec

Die beste Funktion des Find -Befehls ist sein Exec -Argument, mit dem der Linux -Benutzer einen Befehl in den gefundenen Dateien ausführen kann, die gefunden werden. Mit anderen Worten können Aktionen auf den gefundenen Dateien ausgeführt werden.

Der Befehl find -exec nimmt das folgende Format an:

Finden Sie [Pfad] [Argumente] -exec [Befehl] [Platzhalter] [Begrenzer]

Wir müssen ein paar Dinge kennenlernen, bevor wir das Exec -Argument verwenden können:

  1. wird als Platzhalter bezeichnet. Dieser Platzhalter wird das von Find gefundene Ergebnis halten.

Also, wenn wir sagen, wir suchen nach einer Datei namens Secret.Txt, dann würden wir schreiben:

Finden Sie / -name Geheimnis.txt

Dies findet eine ganze Reihe von Dateien in meinem System, wenn ich einen Befehl ausführen möchte. Anstatt den Namen der gefundenen Datei zu schreiben, werden wir ihn durch den Platzhalter ersetzen.

Zum Beispiel,

Finden Sie / -name 'Geheimnis.txt '2> /dev /null -exec cat \;

Notiz: In diesem Fall lassen Sie mich auch darauf hinweisen, was der 2> /dev /null tut. Die 2 steht für Standardfehler, die wir ignorieren wollen. So senden wir es an /dev /null. Im Wesentlichen nehmen wir die Fehler auf und werfen sie weg.

Lassen Sie uns vorerst das ignorieren; Teil und Konzentrat auf den Platzhalter. Warum haben wir das nach dem Wort "Katze" hinzugefügt? Nun, es wird die Datei finden, nach der ich suche, und wenn sie sie gefunden hat, wird die Datei an das Exec -Argument wie folgt geleitet:

-Exec Cat \;

oder

-Exec Cat/Home/Kalyani/Geheimnis.txt \;

Es ist also ein Platzhalter für die Ergebnisse, die durch den Befehl Find herausgeschnitten wurden!

  1. \; ist ein Trennzeichen.

\; ist ein Trennzeichen. Dieser besondere Trennzeichen ist, wie das Findargument enden kann. Wenn es auf diese Weise endet, wird jedes Ergebnis eine Aktion ergriffen, die sie findet.

Zum Beispiel habe ich drei Geheimnisse erstellt.TXT -Dateien: Geheimnis.txt, Secret2.TXT und Secret3.txt.

Jetzt werde ich den folgenden Befehl ausgeben:

Finden Sie / -name 'Geheimnis*.txt '2> /dev /null -exec cat \;

Wie Sie aus dem Bild sehen können, hat es die drei Dateien gefunden und ihren Inhalt einzeln ausgerichtet. Also, was macht das \; Tun? Nun, es stellt sicher, dass auf jede Datei Maßnahmen ergriffen werden. In diesem Fall haben wir drei Dateien. Der CAT -Befehl wird zuerst auf das erste Ergebnis angewendet: Secret2.txt. Dann wird es auf das zweite Ergebnis angewendet: Secret33.txt. Schließlich wird es auf das dritte Ergebnis angewendet: Geheimnis.txt.

Hier, wenn Sie verwenden -Exec Cat \; Streit, Es führt Folgendes aus:

Cat Secret2.txt;
Cat Secret3.txt;
Katzengeheimnis.txt;
  1. \+ ist ein weiterer Trennzeichen.

Dies ist eine andere Art von Trennzeichen. Wenn und wenn dies verwendet wird, werden die gefundenen Ergebnisse Maßnahmen ergriffen.

Zum Beispiel:

Finden Sie / -name 'Geheimnis*.txt '2> /dev /null -exec ls \+

Das folgende Bild zeigt Ihnen den Unterschied zwischen dem \; und das \+:


Hier, wenn du Verwenden Sie -exec ls \; Streit, Es führt Folgendes aus:

LS Secret2.txt;
LS Secret3.txt;
ls Geheimnis.txt;

Während -Exec \+ Argument wird Folgendes ausführen:

LS Secret2.txt Secret3.txt geheim.txt;

Mehrere Führungskräfte

Jetzt können auch mehrere Argumente für die EXEC an den Befehl übergeben werden.

Das allgemeine Format wird wie folgt sein:

find [path] [argumente] -exec [command_1] [Platzhalter] [Delimiter] -exec [Kommando] [Platzhalter] [DELIMiter]… -Exec [Befehlsbeauftragte] [Platzhalter] [DELIMiter]

Zum Beispiel:

Finden Sie / -name 'Geheimnis*.txt '2> /dev /null -exec ls \; -exec cat \;

Hier, wie Sie sehen können, nimmt es das erste Ergebnis und führt es durch den ersten Befehl weiter. Dann geht es durch den zweiten Befehl und geht dann zum zweiten Ergebnis.

Im Wesentlichen werden die Ergebnisse wie folgt verabschiedet:

LS Secret2.txt; Cat Secret2.txt;
LS Secret3.txt; Cat Secret3.txt;
ls Geheimnis.txt; Katzengeheimnis.txt;

Ein anderes Beispiel:

Finden Sie / -name 'Geheimnis*.txt '2> /dev /null -exec ls \+ -exec cat \+

In diesem Fall werden die Ergebnisse wie folgt verabschiedet:

LS Secret2.txt Secret3.txt geheim.txt; Cat Secret2.txt Secret3.txt geheim.txt;

Abschluss

Linux ist ein wunderbares System mit einer Gazillion -Dateien. Es wird jedoch nur zwei verschiedene Befehle geliefert, um durch den Heuhaufen nach unserer Nadel zu suchen. Der bessere dieser beiden Befehle ist der Befehl Find. Die Befehlssuche finden während des gesamten Dateisystems, damit es eine Weile dauern wird. Darüber hinaus können Maßnahmen zu den gefundenen Ergebnissen ergreifen. Dies bedeutet, dass Sie verschiedene Befehle auf die gefundenen Dateien anwenden können. Wenn Sie sie bewegen möchten, wenn Sie sie entfernen oder sogar verrückte Dinge für die Ergebnisse des Befehls zum Find tun möchten, können Sie dies können. Ihr Wissen ist die Grenze. Wenn Sie also das nächste Mal in einer Datei etwas anfangen müssen, können Sie dies mit dem Befehl Find -exec tun! Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Informationen finden Sie in den anderen Linux -Hinweisartikeln.