Zum Hauptinhalt springen

So verwenden Sie xargs Linux: eine einfache Anleitung für Anfänger

xargs - dies ist ein praktischer Befehl auf einem Linux-Betriebssystem, mit dem Sie Argumente von der Standardeingabe an andere Befehle übergeben können. Sie kann nützlich sein, wenn Sie dieselbe Operation für mehrere Elemente oder Dateien an der Eingabeaufforderung ausführen möchten. In diesem Handbuch werden wir die grundlegenden Prinzipien der Verwendung von xargs untersuchen und einige Beispiele geben, um Ihnen zu helfen, dieses leistungsstarke Dienstprogramm zu verwenden.

Das Team xargs akzeptiert Eingaben aus einem Standardthread (z. B. die Ausgabe anderer Befehle oder den Inhalt von Dateien), teilt sie in einzelne Elemente auf und übergibt sie zur Ausführung an den angegebenen Befehl. Dies macht xargs zu einem sehr flexiblen und effizienten Werkzeug für die Befehlszeilenautomatisierung. Standardmäßig übergibt xargs jedes Eingabeelement als Argument an 1 oder mehr ausgeführte Befehle.

Bevor Sie mit der Verwendung von xargs beginnen, ist es wichtig, die Syntax und die Parameter des Befehls zu verstehen. Einer der Hauptparameter von xargs ist die Option -I Mit dieser Option können Sie eine Beschriftung angeben, die durch jedes Element in einem von xargs aufgerufenen Befehl ersetzt wird. Xargs kann auch leere Zeilen oder Leerzeichen in Eingabeelementen berücksichtigen, die Anzahl der Elemente, die gleichzeitig an einen Befehl übergeben werden, begrenzen und die Zeichen ändern, die zum Trennen von Elementen verwendet werden.

Anmerkung: xargs funktioniert mit allen Befehlen, die einleitende Argumente annehmen und Aktionen in der Befehlszeile ausführen. Es kann auch verwendet werden, um Schleifen in der Befehlszeile zu erstellen und Aktionen für jedes Element auszuführen.

Was ist xargs unter Linux?

Die Grundidee hinter xargs besteht darin, dass es Eingaben akzeptiert und in einzelne Elemente aufteilt, die dann an einen anderen Befehl übergeben werden. Xargs bietet viele Möglichkeiten zum Konfigurieren der Parameterverarbeitung und zum Steuern der gleichzeitigen Befehlsausführung.

Einer der Hauptvorteile von xargs ist seine Fähigkeit, mit Standardeingaben und -ausgaben zu arbeiten, was es zu einem vielseitigen Werkzeug für die Integration mit anderen Befehlszeilenprogrammen macht.

Im Allgemeinen kann die Verwendung von xargs unter Linux die Ausführung von sich wiederholenden Aufgaben wie Dateiverarbeitung, das Ausführen von Befehlen für jedes Listenelement erheblich vereinfachen und beschleunigen.

Warum xargs verwenden?

Der Hauptgrund für die Verwendung von xargs besteht darin, dass Sie eine Liste von Dateien oder Befehlsergebnissen verarbeiten und sie als Argumente an den Befehl übergeben können, den Sie ausführen möchten. Dies ist besonders nützlich, wenn die Dateiliste oder die Ergebnisse eines Befehls zu groß sind, um direkt an den Befehl weitergeleitet zu werden.

Darüber hinaus ermöglicht xargs die Verwendung mehrerer gemeinsam arbeitender Prozesse für eine schnellere und effizientere Verarbeitung. Es ermöglicht Ihnen, einen Befehl parallel auszuführen und eine große Menge an Daten gleichzeitig zu verarbeiten.

Es ist auch erwähnenswert, dass der Befehl xargs viele Optionen bietet, mit denen Sie sein Verhalten anpassen können. Sie können beispielsweise die maximale Anzahl von Argumenten angeben, die an einen Befehl übergeben werden können, oder ein Trennzeichen zwischen den Argumenten festlegen.

Als Ergebnis können Sie mit xargs die Arbeit mit Dateien und Befehlsergebnissen optimieren, die Automatisierung von Aufgaben vereinfachen und die Geschwindigkeit von Operationen auf einem Linux-System erhöhen. Dieses leistungsstarke Tool kann für Systemadministratoren, Entwickler und jeden Benutzer nützlich sein, der von der Automatisierung und effizienten Datenverarbeitung profitieren möchte.

Grundprinzipien der Arbeit

Das Grundprinzip von xargs ist wie folgt:

  • Ein Befehl oder eine Befehlsliste wird als xargs-Argument übergeben.
  • Xargs liest die Argumente aus der Standardeingabe (oder aus der im Argument angegebenen Datei) und übergibt sie an den ausführbaren Befehl.
  • Argumente können auf zwei Arten an einen Befehl übergeben werden: als Befehlszeilenargumente (Standard) oder als Befehlsargumente, die am Ende der Befehlszeile hinzugefügt werden.
  • Der Befehl wird mit den übergebenen Argumenten ausgeführt.

Ein einfaches Anwendungsbeispiel:

Angenommen, Sie haben eine Liste von Dateien, die Sie in ein anderes Verzeichnis kopieren möchten. Die Liste der Dateien befindet sich in der Datei "files".txt", jede Datei in einer separaten Zeile. Sie können xargs verwenden, um alle Dateien aus einer Liste zu kopieren:

cat files.txt | xargs cp -t /path/to/destination/

Dabei lautet der Befehl "cat files.txt" liest den Inhalt der Datei "files.txt", das an xargs übergeben wird. Xargs übergibt dann jede Zeile als Argument an den Befehl "cp -t /path/to/destination/", der die Dateien in das angegebene Verzeichnis kopiert.

Die Grundprinzipien von xargs bestehen daher darin, Argumente von der Standardeingabe an einen ausführbaren Befehl zu übergeben, wodurch große Datenmengen effizient verarbeitet und Aktionen mit einer großen Anzahl von Argumenten ausgeführt werden können.

Wie übergebe ich Argumente an xargs?

Der Befehl xargs bietet die Möglichkeit, Argumente aus der Standardeingabe an andere Befehle zu übergeben. Dies ist sehr praktisch, wenn Sie eine große Anzahl von Argumenten verarbeiten oder einen Befehl für jedes Argument separat ausführen müssen.

Hier sind einige Möglichkeiten, Argumente an xargs zu übergeben:

  • Durch Leerzeichen: Wenn die Argumente durch Leerzeichen getrennt sind, können Sie den Befehl xargs ohne Parameter verwenden. Zum Beispiel können Sie eingeben: echo Argument 1 Argument 2 Argument 3 | xargs Befehl . Dadurch wird der Befehl mit jedem Argument separat ausgeführt.
  • Durch eine neue Zeile: Wenn die Argumente durch eine neue Zeichenfolge getrennt sind, können Sie die Option -d mit xargs verwenden, um ein neues Trennzeichen anzugeben. Zum Beispiel können Sie eingeben: echo -e "Argument 1 Argument 2 Argument 3" | xargs -d ' ' Befehl . Dadurch wird der Befehl mit jedem Argument separat ausgeführt.
  • Aus der Datei: Wenn die Argumente in einer Datei gespeichert sind, können Sie den Befehl xargs mit der Option -a verwenden, um einen Dateinamen anzugeben. Zum Beispiel könnten Sie Folgendes eingeben: xargs -a Datei.txt- Befehl . Dies führt den Befehl mit jedem Argument aus der Datei aus.

Alternativ können Sie andere xargs-Parameter verwenden, um die Übergabe von Argumenten zu konfigurieren. Zum Beispiel können Sie den Parameter -I verwenden, um die Position eines Arguments in einem Befehl anzugeben. Sie können beispielsweise Folgendes eingeben: echo Argument 1 Argument 2 Argument 3 / xargs -I % Befehl % . Dies führt den Befehl mit jedem Argument aus und ersetzt das Zeichen '%' durch das Argument.

Jetzt wissen Sie, wie Sie Argumente an den Befehl xargs übergeben. Dieses Tool wird Ihnen helfen, die Verarbeitung einer großen Anzahl von Argumenten zu vereinfachen und die Effizienz Ihrer Arbeit unter Linux zu verbessern.

Wie verwende ich xargs zusammen mit anderen Befehlen?

Der xargs-Befehl wird häufig in Verbindung mit anderen Befehlen unter Linux verwendet, um komplexe Operationen an einer großen Anzahl von Dateien oder Daten durchzuführen.

Einer der Hauptgründe für die Verwendung von xargs besteht darin, die Ausgabe eines Befehls als Eingabe an einen anderen Befehl zu übergeben. Dazu können Sie das Pipelinesymbol "|" verwenden, das die Ausgabe eines Befehls mit der Eingabe eines anderen Befehls verbindet.

Beispiel für die Verwendung des Befehls xargs mit anderen Befehlen:

1. Kopieren von Dateien:

ls | xargs cp -t new_directory

In diesem Beispiel werden alle Dateien aus dem aktuellen Verzeichnis in das Verzeichnis "new_diretory" kopiert.

2. Dateien löschen:

ls | xargs rm

In diesem Beispiel übergibt der Befehl xargs eine Liste der vom Befehl ls empfangenen Dateien an den Befehl rm zum Löschen.

3. Suchen und Ersetzen von Text:

grep -rl "old_text" . | xargs sed -i "s/old_text/new_text/g"

In diesem Beispiel übergibt der Befehl xargs eine Liste der Dateien, die "old_text" enthalten, an den Befehl sed, um diesen Text durch "new_text" zu ersetzen.

4. Ausführen eines Befehls auf mehreren Servern:

echo "hostname1 hostname2 hostname3" | xargs -n 1 -P 3 ssh user@

In diesem Beispiel wird eine Liste der Hostnamen an den ssh-Befehl übergeben, der sich in parallelen Threads mit jedem Host verbindet.

Wenn Sie xargs-Befehle mit anderen Befehlen kombinieren, können Sie komplexe Aufgaben unter Linux erheblich vereinfachen und automatisieren.

Anwendungsbeispiele

Hier sind einige Beispiele für die Verwendung des Befehls xargs unter Linux:

    Erstellen einer Liste von Dateien aus einem Verzeichnis:

ls | xargs -I <> echo <>
echo file1 file2 file3 | xargs rm
echo file1 file2 file3 | xargs -t -I <> cp <> destination_directory/
find . -name "*.txt" -type f -print | xargs -I <> rm <>

Ich hoffe, diese Beispiele helfen Ihnen, den xargs-Befehl in Ihrer Arbeit mit Linux zu verwenden.

Beispiel 1: Bearbeiten einer Dateiliste

Die Verwendung von xargs ist oft praktisch, um eine Liste von Dateien zu verarbeiten.

Angenommen, wir haben eine Liste von Dateien und möchten für jede Datei in dieser Liste einen bestimmten Befehl ausführen.

Hier ist ein Beispielbefehl:

ls | xargs -I <> sh -c 'echo "Файл: <>"'

In diesem Beispiel wird der Befehl "ls" verwendet, um eine Liste der Dateien im aktuellen Verzeichnis abzurufen. Das Ergebnis dieses Befehls wird an xargs übergeben, der dann den Befehl "sh -c 'echo "Datei: <>"'" für jede Datei in der Liste ausführt.

Dadurch wird jede Datei mit dem Präfix "Datei:" ausgegeben, was bei der Verarbeitung einer großen Anzahl von Dateien nützlich sein kann.

Beispiel 2: Parallele Ausführung von Aufgaben

Der Befehl xargs kann auch verwendet werden, um Aufgaben parallel auszuführen, basierend auf den verfügbaren Systemressourcen. Dies kann nützlich sein, wenn Sie mehrere Aufgaben gleichzeitig ausführen können, um den Prozess zu beschleunigen.

Um Aufgaben parallel auszuführen, können Sie die Option -P (oder --max-problems) verwenden, um die maximale Anzahl von gleichzeitig ausgeführten Aufgaben anzugeben. Zum Beispiel:

$ cat file.txt | xargs -P 4 -I <> command <>

In diesem Beispiel führt der Befehl xargs Aufgaben aus der Datei file aus.txt mit maximal 4 parallelen Prozessen. Jede Aufgabe wird an den Befehl command übergeben, wobei <> durch das entsprechende Argument ersetzt wird.

Das parallele Ausführen von Aufgaben mit xargs kann den Prozess erheblich beschleunigen, insbesondere wenn Sie einen leistungsstarken Multicore-Prozessor oder sogar einen Cluster haben.

Anmerkung: Wenn Sie Aufgaben parallel mit xargs ausführen, sollten Sie darauf achten, dass das System nicht zu stark belastet wird und die maximale Anzahl von gleichzeitig ausgeführten Aufgaben nicht überschritten wird.

Nützliche Flags und Optionen

Das xargs-Dienstprogramm bietet mehrere nützliche Flags und Optionen zum Ausführen von Befehlen mit Eingaben, die von einer Standardeingabe oder -datei abgeleitet werden.

Flag/OptionDie Beschreibung
-IGibt ein Zeichen an, das durch Argumente im Befehl ersetzt werden soll. Wenn zum Beispiel "<>" in einem Befehl vorkommt, wird es durch jedes Argument ersetzt.
-a fileLiest Argumente aus einer Datei anstelle der Standardeingabe. Jede Zeile der Datei wird als separates Argument behandelt.
-d delimiterGibt das Trennzeichen für Argumente an, die mit der Option -a angegeben werden. Standardmäßig ist das Trennzeichen ein Leerzeichen.
-n numBegrenzt die Anzahl der an den Befehl übergebenen Argumente. Die angegebene Anzahl von Argumenten wird an den Befehl übergeben.
-P maxprocsBegrenzt die Anzahl der gleichzeitig ausgeführten Prozesse. Der Wert maxprocs gibt die maximale Anzahl von Prozessen an.
-s sizeGibt die maximale Größe des Arguments in Bytes an. Wenn das Argument größer als der angegebene Wert ist, teilt xargs es in mehrere Argumente auf.
-tGibt den Befehl aus, der ausgeführt werden soll, bevor er ausgeführt wird.

Dies sind nur einige der Flags und Optionen, die mit dem xargs-Dienstprogramm verwendet werden können. Lesen Sie die Dokumentation durch und experimentieren Sie, um die besten Ergebnisse bei Ihrer Arbeit mit der Befehlszeile zu erzielen.

Flagge -i

Angenommen, Sie haben Dateien, deren Namen Großbuchstaben enthalten, und Sie möchten jede Datei umbenennen, indem Sie ihren Namen in Kleinbuchstaben konvertieren. Sie können den folgenden Befehl verwenden:

find . -type f -print0 | xargs -0 -i mv <> `echo <> | tr '[:upper:]' '[:lower:]'`

In diesem Fall erhalten wir mit dem Befehl find eine Liste von Dateien, übergeben sie über die Pipeline an den Befehl xargs, indem wir das Flag -print0 und -0 verwenden, um Dateinamen zu verarbeiten, die Leerzeichen oder Sonderzeichen enthalten. Dann geben wir das Flag -i an, das xargs anweist, jedes Wort anstelle des Zeichens "<>" in den angegebenen Befehl einzufügen. Als nächstes verwenden wir den Befehl mv , um jede Datei umzubenennen, indem wir die Funktion tr verwenden, um Buchstaben in Kleinbuchstaben umzuwandeln.

Daher kann das Flag -i ein sehr nützliches Werkzeug für die Verarbeitung von Eingaben sein, sodass Sie sie an der angegebenen Stelle des Befehls einfügen können. Seien Sie vorsichtig, wenn Sie dieses Flag verwenden, um unbeabsichtigte Konsequenzen zu vermeiden oder Daten zu zerstören.