Der Befehl xargs liest aus der Standardeingabe und führt einen Befehl für jedes bereitgestellte Argument aus. Jedes Argument muss durch Leerzeichen getrennt werden. Der Pipe-Operator wird verwendet, um die Ausgabe des ersten Befehls zur Eingabe für den zweiten Befehl zu machen. Der xargs-Befehl wird häufig zusammen mit dem find-Befehl verwendet, um mit jedem Ergebnis zu arbeiten, das in der Datei- oder Verzeichnissuche gefunden wird.
Syntax
Die allgemeine Syntax des xargs-Befehls lautet:
# command [options] [arguments] | xargs [options] {command} Angenommen, Sie möchten alle Dateien im Verzeichnis /foo mit der Erweiterung .pdf löschen. Sie können xargs verwenden, um den Prozess zu automatisieren:
# find /foo -type f -name "*.pdf" | xargs rm
Der Befehl find sucht nach allen Dateien in /foo mit der Erweiterung .pdf und leitet das Ergebnis dann an den Befehl xargs weiter. Da die Ergebnisse durch ein Leerzeichen getrennt sind, führt der xargs-Befehl den rm-Befehl für jede Datei in den Ergebnissen aus und entfernt alle PDF-Dateien im Verzeichnis.
Der xargs-Befehl hat verschiedene Optionen, wie unten gezeigt:
| Option | Beschreibung |
|---|---|
| -I {Ersatzzeichenfolge} | Betrachten Sie jede Zeile in der Standardeingabe als ein einzelnes Argument. |
| -L {Anzahl der Zeilen} | Lesen Sie eine bestimmte Anzahl von Zeilen aus der Standardeingabe und verketten Sie sie zu einer langen Zeichenfolge. |
| -p | Den Benutzer vor jedem Befehl auffordern. |
| -n {Anzahl der Argumente} | Lesen Sie die maximale Anzahl von Argumenten aus der Standardeingabe und fügen Sie sie am Ende der Befehlsvorlage ein. |
| -E {Ende der Zeichenfolge} | Repräsentiert das Ende der Standardeingabe. |
| -t | Schreiben Sie jeden Befehl in die Standardfehlerausgabe, bevor Sie den Befehl ausführen. |
| -s {maximale Größe} | Legen Sie die maximal zulässige Größe einer Argumentliste auf eine bestimmte Anzahl von Zeichen fest. |
Wenn beim Ausführen des xargs-Befehls der folgende Fehler auftritt:
xargs: command not found
Sie können versuchen, das folgende Paket gemäß Ihrer Wahl der Distribution zu installieren:
| Betriebssystemverteilung | Befehl |
|---|---|
| OS X | brew install findutils |
| Debian | apt-get install findutils |
| Ubuntu | apt-get install findutils |
| Alpin | apk findutils hinzufügen |
| Arch Linux | pacman -S findutils |
| Kali-Linux | apt-get install findutils |
| Fedora | dnf install findutils-1 |
| Raspbian | apt-get install findutils |
xargs-Befehlsbeispiele
1. Führen Sie einen Befehl mit den Eingabedaten als Argumente aus:
# arguments_source | xargs command
2. Führen Sie mehrere verkettete Befehle für die Eingabedaten aus:
# arguments_source | xargs sh -c "command1 && command2 | command3"
3. Löschen Sie alle Dateien mit der Erweiterung `.backup` (`-print0` verwendet ein Nullzeichen, um Dateinamen aufzuteilen, und `-0` verwendet es als Trennzeichen):
# find . -name '*.backup' -print0 | xargs -0 rm -v
4. Führen Sie den Befehl einmal für jede Eingabezeile aus und ersetzen Sie alle Vorkommen des Platzhalters (hier als `_` gekennzeichnet) durch die Eingabezeile:
# arguments_source | xargs -I _ command _ optional_extra_arguments
5. parallele Läufe von bis zu "max-procs"-Prozessen gleichzeitig; der Standardwert ist 1. Wenn `max-procs` 0 ist, führt xargs so viele Prozesse wie möglich gleichzeitig aus:
# arguments_source | xargs -P max-procs command