Wird im Allgemeinen xargsfür Fälle verwendet, in denen Sie (mit dem Symbol |) etwas von einem Befehl zum anderen ( Command1 | Command2) weiterleiten würden, die Ausgabe des ersten Befehls jedoch nicht korrekt als Eingabe für den zweiten Befehl empfangen wird.
Dies ist normalerweise der Fall, wenn der zweite Befehl die Dateneingabe über Standard In (stdin) nicht korrekt verarbeitet (z. B .: Mehrere Zeilen als Eingabe, die Art der Zeileneinrichtung, die als Eingabe verwendeten Zeichen, mehrere Parameter als Eingabe, der als empfangene Datentyp) Eingabe usw ..). Um Ihnen ein kurzes Beispiel zu geben, testen Sie Folgendes:
Beispiel 1:
ls | echo- Dies wird nichts bewirken, da er echonicht weiß, wie er mit den empfangenen Eingaben umgeht. In diesem Fall xargswird die Eingabe in diesem Fall so verarbeitet, dass sie korrekt verarbeitet werden kann echo(z. B .: als einzelne Informationszeile).
ls | xargs echo- Dadurch werden alle Informationen lsin einer einzigen Zeile ausgegeben
Beispiel 2:
Angenommen, ich habe mehrere goLang-Dateien in einem Ordner namens go. Ich würde sie mit so etwas suchen:
find go -name *.go -type f | echo- Aber wenn das Pipe-Symbol da und das echoam Ende wäre, würde es nicht funktionieren.
find go -name *.go -type f | xargs echo- Hier würde es dank funktionieren, xargsaber wenn ich jede Antwort vom findBefehl in einer einzigen Zeile haben möchte, würde ich Folgendes tun:
find go -name *.go -type f | xargs -0 echo- In diesem Fall wird die gleiche Ausgabe von findmit angezeigt echo.
Befehle wie cp, echo, rm, lessund andere, die einen besseren Umgang mit der Eingabe benötigen, erhalten einen Vorteil, wenn sie mit verwendet werden xargs.