Como usar o comando xargs no Linux

Verwendung des Befehls xargs unter Linux

Für einige der erfahreneren Benutzer sind wir immer auf der Suche nach neuen Wegen, um am Terminal intelligenter und nicht härter zu arbeiten. xargs ist ein nützlicher Befehl, der als Brücke zwischen zwei Befehlen fungiert, wobei die Ausgabe des einen gelesen und der andere mit den gelesenen Elementen ausgeführt wird. Der Befehl wird am häufigsten in Szenarien verwendet, in denen ein Benutzer nach einem Muster sucht, Dateien entfernt und umbenennt und vieles mehr. Hier zeigen wir Ihnen, wie Sie das verwenden xargs Befehl zu Ihrem Vorteil.

Was ist Xargs?

In seiner Grundform xargs Liest Informationen von der Standardeingabe (oder STDIN) und führt einen Befehl ein- oder mehrmals mit den gelesenen Elementen aus. Es gibt viele einfache Demonstrationen, aber hier ist eine, die zeigt, was ich meine.

Haben xargs Führen Sie die aus ls Befehl in meinem Ordner “Dokumente”, würde ich den folgenden Befehl ausführen:

Der Pipe-Charakter | pfeift was auch immer davor als STDIN für kommt xargs.

Sie können sehen, dass xargs liest meinen Dokumentenordner ohne Probleme. Dies ist nur ein Beispiel für die Fähigkeiten des xargs Befehl.

Während xargs Der Befehl kann in verschiedenen Befehlszeilenoperationen verwendet werden. Er ist sehr praktisch, wenn er mit dem Befehl verwendet wird find Befehl. In diesem Artikel diskutieren wir einige nützliche Beispiele, um zu verstehen, wie xargs und find kann zusammen verwendet werden.

Vorgänge mit mehreren Dateien

Angenommen, Sie möchten den Inhalt von “ref.txt” in alle in einem Verzeichnis vorhandenen Textdateien kopieren. Während für die Aufgabe ansonsten möglicherweise mehrere Befehle ausgeführt werden müssen, wird die xargs Befehl, zusammen mit dem find Befehl, macht es einfach. Ich habe ein paar Testverzeichnisse. Eines hat “test0.txt”, das Text enthält, und das andere Verzeichnis enthält 10 andere Testdateien ohne Text. Wenn ich den Inhalt von nehmen wollte test0.txt und kopiere das in die restlichen Textdateien in den anderen Verzeichnissen, ich würde den folgenden Befehl ausführen:

Xargs Find Cp

Um den oben gezeigten Befehl zu verstehen, teilen wir ihn in zwei Teile.

Der erste Teil ist find ./test-dir1/ -name "*.txt" , die nach allen TXT-Dateien sucht, die im Verzeichnis “test-dir1” vorhanden sind. Hier können Sie ein beliebiges Verzeichnis angeben.

Der zweite Teil, xargs -n1 cp test.txtwird die Ausgabe des ersten Befehls (die resultierenden Dateinamen) abrufen und an den übergeben cp Befehl (kopieren) nacheinander. Notiere dass der -n Option ist hier entscheidend, wie es anweist xargs ein Argument pro Ausführung verwenden.

In Kombination kopiert der vollständige Befehl den Inhalt von “test0.txt” in alle TXT-Dateien im Verzeichnis.

Xargs Cp Proof

Operationen mit einer großen Anzahl von Argumenten

Einer der Hauptvorteile der Verwendung xargs ist seine Fähigkeit, eine große Anzahl von Argumenten zu verarbeiten. Wenn Sie beispielsweise eine große Anzahl von Dateien auf einmal löschen, wird die rm Befehl scheiterte manchmal mit einem “Argumentliste zu lang” Error. Das liegt daran, dass es nicht einfach mit einer so langen Liste von Argumenten umgehen kann. Dies ist normalerweise der Fall, wenn sich zu viele Dateien in dem Ordner befinden, den Sie löschen möchten.

Angenommen, Sie haben 75 PDF-Dateien und es wird eine Fehlermeldung angezeigt, wenn Sie versuchen, sie zu löschen.

Xargs Pdfs

Dies kann leicht mit behoben werden xargs. Verwenden Sie den folgenden Befehl, um alle diese Dateien zu löschen:

Xargs Rm F.

Operationen mit Mustersuche

Sowohl Softwareentwickler als auch Systemadministratoren führen viele Mustersuchen durch, während sie an der Befehlszeile arbeiten. Beispielsweise möchte ein Entwickler möglicherweise einen kurzen Blick auf die Projektdateien werfen, die eine bestimmte Variable ändern, oder ein Systemadministrator möchte möglicherweise die Dateien anzeigen, die einen bestimmten Systemkonfigurationsparameter verwenden. In diesen Szenarien xargs, zusammen mit find und grepmacht es Ihnen einfach.

Führen Sie beispielsweise den folgenden Befehl aus, um nach allen “.txt” -Dateien zu suchen, die die Zeichenfolge “maketecheasier” enthalten:

Hier ist die Ausgabe des Befehls, der auf meinem System erzeugt wurde.

Xargs Grep Mte

Ausschneiden / Kopieren

Xargs, zusammen mit find Befehl kann auch verwendet werden, um eine Reihe von Dateien von einem Verzeichnis in ein anderes zu kopieren oder zu verschieben. Verwenden Sie beispielsweise den folgenden Befehl, um alle Textdateien, die älter als 10 Minuten sind, aus dem aktuellen Verzeichnis in das vorherige Verzeichnis zu verschieben:

Das -I Die Befehlszeilenoption wird von der verwendet xargs Befehl zum Definieren einer Ersetzungszeichenfolge, die durch Namen ersetzt wird, die aus der Ausgabe von gelesen werden find Befehl. Hier ist die Ersetzungszeichenfolge {}, aber es könnte alles sein. Beispielsweise können Sie “Datei” als Ersetzungszeichenfolge verwenden.

Wie man xargs sagt, wann er aufhören soll

Angenommen, Sie möchten die Details aller im aktuellen Verzeichnis vorhandenen TXT-Dateien auflisten. Wie bereits erläutert, kann dies einfach mit dem folgenden Befehl ausgeführt werden:

Aber es gibt ein Problem: das xargs Befehl wird die ausführen ls Befehl auch wenn die find Befehl kann keine TXT-Datei finden. Das Folgende ist ein Beispiel.

Xargs Find Txt Pngs

Sie können also sehen, dass sich keine TXT-Dateien im Verzeichnis befinden, aber das hat nicht aufgehört xargs von der Ausführung der ls Befehl. Verwenden Sie die, um dieses Verhalten zu ändern -r Befehlszeilenoption:

Fazit

Obwohl ich mich hier auf die Verwendung konzentriert habe xargs mit findkann auch mit vielen anderen Befehlen verwendet werden. Wenn Sie mehrere komplexe Befehle haben, die Sie ausführen müssen, xargs ist ein sehr nützliches Werkzeug.

Wenn Ihnen unser Artikel über die Verwendung von gefallen hat xargs Lesen Sie unter Linux einige unserer anderen Linux-Inhalte, z. B. unsere Anleitungen zur Behebung des Fehlers “Kein Speicherplatz mehr auf dem Gerät” oder zur Beschleunigung von Ubuntu.

Verbunden:

  • Anfängerleitfaden für Podman-Container unter Linux
  • Einrichten und Verwenden von SSH unter Linux
  • Ausführen von Bash-Befehlen im Hintergrund unter Linux