GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Beispiele für xargs-Befehle unter Linux

Der Befehl xargs in Linux/UNIX liest Elemente aus der Standardeingabe, die durch Leerzeichen oder Zeilenumbrüche getrennt sind, und führt den Befehl ein- oder mehrmals mit beliebigen Anfangsargumenten aus.

Wenn kein Befehl als Argument für xargs bereitgestellt wird, ist der Standardbefehl, den das Tool ausführt, ein echo.

Leerzeilen auf der Standardeingabe werden ignoriert. Die Elemente, die xargs von der Standardeingabe lesen, können mit doppelten oder einfachen Anführungszeichen oder einem umgekehrten Schrägstrich geschützt werden.

Der Befehl xargs ist extrem leistungsfähig, insbesondere in Kombination mit Befehlen wie grep oder echo. In diesem Tutorial werden wir einige grundlegende Verwendungen des xargs-Befehls behandeln, um Ihnen den Einstieg zu erleichtern.

Linux xargs-Befehlssyntax

Die Syntax des xargs-Befehls lautet:


xargs [options] [command [initial-arguments]]

Sie können alle Optionen und Argumente anzeigen, indem Sie den Befehl man xargs aufrufen vom Endgerät. Der folgende Abschnitt listet einige Beispiele des args-Befehls auf.

Einfaches Beispiel für Linux xargs

Der Befehl xargs ohne Befehl gibt die Argumente in der Standardeingabe aus. Im folgenden Beispiel wird die Ausgabe des ls-Befehls in den xargs-Befehl geleitet und der xargs-Befehl gibt ohne Befehl die Dateiliste in der Standardeingabe wieder.


# ls | xargs

Xargs-Beispiel 1.a

Das folgende Beispiel zeigt, wie die Ausgabe des Befehls echo an xargs weitergeleitet wird und der Befehl xargs das weitergeleitete Argument verwendet, um Ordner mit mkdir zu erstellen .


# echo 'one two three' | xargs mkdir

Xargs-Beispiel 1.b

Anzahl der Argumente begrenzen

Die Anzahl der an xargs übergebenen Argumente wird durch das Limit Ihres Systems definiert. Das -n switch begrenzt die Anzahl der Argumente, die an einen bestimmten Befehl übergeben werden. Der xargs-Befehl wird kontinuierlich mit n ausgeführt Anzahl der Argumente, bis alle Argumente erschöpft sind.

Das folgende Beispiel begrenzt die Anzahl der aus der Standardeingabe gelesenen Argumente auf 2. Der Xargs-Befehl liest weiterhin zwei Argumente gleichzeitig, bis er alle gelesen hat. Weiterhin das -t Option gibt den Befehl in der Standardausgabe aus, bevor er ausgeführt wird.


# echo "file1 file2 file3 file4 file5" | xargs -n 2 -t touch

Xargs-Beispiel 2

Benutzeraufforderung vor der Ausführung aktivieren

Die xargs mit -p Die Option fordert den Benutzer vor der Ausführung des Befehls auf. Das folgende Beispiel zeigt, dass der xargs-Befehl den Benutzer entweder zu „Y“ oder „N“ auffordert, bevor er mit der Erstellung von Ordnern mit jedem Argument fortfährt.


# echo Hello World | xargs -p mkdir
# echo one two three | xargs -p -n 1 mkdir

Xargs-Beispiel 3

Löschen Sie Dateien mit dem Befehl find und xargs

Eine der häufigsten Verwendungen von xargs ist die Verwendung mit dem Befehl find. Stellen Sie sich eine Situation vor, in der Sie eine Reihe von Dateien entfernen oder umbenennen möchten, nachdem Sie den Befehl find ausgeführt haben. Hier können sowohl der find- als auch der xargs-Befehl zusammen auf Dateien angewendet werden, die mit bestimmten Attributen übereinstimmen, und sie dann auf einmal löschen oder umbenennen.

Angenommen, Sie möchten alle Dateien in /tmp löschen Ordner, die innerhalb der letzten fünf Minuten erstellt wurden. Um dies mit xargs zu tun, finden Sie zuerst alle Dateien heraus, die mit den von Ihnen gewählten Kriterien übereinstimmen, indem Sie find verwenden Befehl und leiten dann die Ausgabe an den xargs-Befehl weiter, der wiederum rm verwendet Befehl, sie zu entfernen.


# find /tmp/* -cmin -5 
# find /tmp/* -cmin -5 | xargs -t rm
# find /tmp/* -cmin -5 

Xargs-Beispiel 4

Suche nach Mustern mit xargs

Eine weitere leistungsstarke Verwendung des Xargs-Befehls ist die Suche nach einem Muster in einer Liste von Dateien, die von einem anderen Unix-Befehl wie ls zurückgegeben werden oder find . Das folgende Beispiel kombiniert find und xargs Befehl, wobei der Befehl find alle Textdateien (.txt) aus dem aktuellen Arbeitsverzeichnis zurückgibt. Das Ergebnis, d. h. die Dateinamen, werden dann an den xargs-Befehl weitergeleitet, wo wir mit grep "file" nach dem Wort "Datei" suchen . Wenn das Muster in den Dateien vorhanden ist, werden die Zeilen, die das Muster enthalten, zusammen mit dem Dateinamen im Terminal ausgegeben:


# find . -name "*.txt" | xargs grep "file"

Xargs-Beispiel 5

Mehrere Befehle mit xargs ausführen

Bisher haben wir gesehen, wie der Befehl xargs Pipe-Argumente verwendet, um verschiedene Aufgaben wie das Umbenennen eines Stapels von Dateien, das Suchen nach einem Muster usw. auszuführen. Dabei wird nach der Pipe-Operation ein einziger Befehl verwendet. Es ist auch möglich, mehrere Befehle zusammen mit xargs auszuführen.

Wenn Sie beispielsweise mehrere Dateien erstellen und sie gleichzeitig mit dem xargs-Befehl auflisten möchten, führen Sie den xargs-Befehl mit -I aus switch gefolgt von der Definition einer Ersatzzeichenfolge. Alle Vorkommen der Ersetzungszeichenfolge werden dann durch das an xargs übergebene Argument ersetzt.


# echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'

Xargs-Beispiel 6

Befehle parallel ausführen

In einigen Situationen verwenden Sie möglicherweise xargs, um einen rechenintensiven Befehl für jedes Argument aufzurufen. Indem Sie Ihre Multi-Core-Maschine nutzen, ist es möglich, den Befehl parallel aufzurufen. Das -P switch tut genau dies, indem er die maximale Anzahl von Prozessen definiert. Standardmäßig ist die maximale Anzahl von Prozessen 1.

Beispielsweise gibt der folgende xargs-Befehl die Zahlen 1 bis 30 aus, indem er 5 Argumente gleichzeitig nimmt und vor allem bis zu 8 Prozesse gleichzeitig ausführt.


# printf %s\\n {1..30} | xargs -n 5 -P 8

Xargs-Beispiel 7

Eingabe aus einer Datei akzeptieren

Bisher haben wir gesehen, dass Eingaben für den xargs-Befehl entweder von der Standardeingabe oder von der Ausgabe anderer Befehle durch die Pipe-Operation gelesen werden. Es ist jedoch auch möglich, dass der xargs-Befehl Eingaben direkt aus einer Datei liest. Das -a switch ermöglicht es Ihnen, eine Datei für Eingaben zu definieren, die von xargs benötigt werden.

Der folgende xargs-Befehl liest Eingaben aus einer Datei (input.txt) und erstellt dann Dateien mit dem Touch-Befehl.


# cat input.txt
one.txt
two.txt
# xargs -a input.txt touch

Xargs-Beispiel 8

Zusammenfassung

Das ist alles! Obwohl wir einige grundlegende Verwendungen des XARGS-Befehls behandelt haben, können Sie jetzt erweiterte Funktionen von XARGS ausprobieren, um einen leistungsstarken Befehl zu erstellen. Ich hoffe, Ihnen hat der Beitrag gefallen und danke, dass Sie ihn gelesen haben.


Linux
  1. 11 Beispiele für Xargs-Befehle unter Linux

  2. 7 Beispiele für Linux-df-Befehle

  3. 8 Linux TR-Befehlsbeispiele

  4. rm-Befehlsbeispiele unter Linux

  5. ps-Befehlsbeispiele in Linux

10 Beispiele für iftop-Befehle unter Linux

16 Beispiele für Echo-Befehle unter Linux

9 Beispiele für tee-Befehle unter Linux

9 diff-Befehlsbeispiele in Linux

Xargs-Befehl unter Linux

id-Befehlsbeispiele in Linux