Linux-xargs-Befehl: So führen Sie Befehle mit Argumenten aus stdin aus

Mit dem Linux-xargs wandeln Sie Standardeingaben in Befehle um und nutzen diese direkt. xargs wird zwar nicht so häufig in Linux verwendet, er kann Ihnen die Arbeit allerdings deutlich erleichtern.

Was ist der Linux-xargs-Befehl?

xargs („extended arguments“) gehört zu den Linux-Befehlen, die von vielen Nutzerinnen und Nutzern nur selten oder nie verwendet werden. Der Command kann aber die Arbeit deutlich erleichtern und unter Umständen sogar Ihren Rechner schonen. Vereinfacht ausgedrückt, verbindet der Linux-xargs zwei Befehle miteinander, wobei er die Ausgabe des einen auswertet und die Erkenntnisse auf den zweiten anwendet. Das ist vor allem dann von Vorteil, wenn Sie eine große Anzahl von Dateien bearbeiten und bestimmte Aufgaben immer wieder durchführen müssen.

xargs ist in den meisten Linux-Distributionen, etwa Debian oder Ubuntu, enthalten und muss nicht installiert werden.

Wie funktioniert der xargs-Befehl?

xargs liest Daten aus stdin (also der Standardeingabe) aus und wandelt sie in Befehlszeilen um. Dafür muss dem Befehl das entsprechende Kommando als Parameter oder Argument geliefert werden. Die jeweiligen Befehle werden dann einmal oder mehrmals ausgeführt. Wenn Sie auf ein spezielles Kommando als Parameter verzichten, nutzt xargs automatisch das Kommando Linux-echo.

Wie sieht die Syntax von Linux-xargs aus?

Wenn Sie den xargs-Befehl im Terminal nutzen möchten, greifen Sie auf diese Syntax zurück:

$ Erstes_Kommando | xargs [Optionen] [Zweites_Kommando]
bash

Dies bewirkt, dass das zweite Kommando mit den Argumenten des ersten ausgeführt wird.

Welche Optionen hat der xargs-Befehl?

Es gibt zahlreiche Optionen für Linux-xargs. Dies sind die wichtigsten:

  • -0 oder –null: Diese Option bewirkt, dass jedes Zeichen wörtlich genommen wird und Argumente aufgrund des NULL-Zeichens getrennt werden.
  • -a oder –arg-file: Mit dieser Option werden Argumente nicht aus der Standardeingabe, sondern einer Datei gelesen.
  • -d oder –delimiter: Trennungen erfolgen mit dieser Option aufgrund des Trennzeichens und nicht des Leerzeichens. Auch hierbei wird jedes Zeichen wörtlich genommen.
  • -p oder –interactive: Mit dieser Option wird vor jeder Ausführung gefragt, ob xargs fortfahren soll.

Beispiele für Linux-xargs

Die Funktionsweise des xargs-Befehls lässt sich am besten anhand einiger Beispiele zeigen.

$ find -name "*.txt" | xargs rm
bash

In diesem Beispiel wenden Sie xargs mit dem Linux-find-Befehl und dem Linux-rm-Befehl an. Das Ergebnis ist, dass alle Dateien mit der Endung .txt aus dem Dateisystem des Rechners entfernt werden.

$ find -name "*.txt" | xargs grep "Rechnung"
bash

So finden Sie alle Dateien, die das Wort „Rechnung“ enthalten. Dafür nutzen Sie zusätzlich den Linux-grep-Befehl.