Beliebte Beiträge Auf Dem Pc Und Software

Top Artikel Auf Internet - 2019

Beispiel Verwendung des Befehls "xargs"

Der Befehl xargs wird normalerweise in einer Befehlszeile verwendet, in der die Ausgabe eines Befehls als Eingabeargument an einen anderen Befehl übergeben wird.

In vielen Fällen wird kein spezieller Befehl wie z Um dies zu erreichen, wird xargs benötigt, da die Operatoren "pipe" und "redirection" dieselbe Art von Transaktion ausführen. Manchmal gibt es jedoch Probleme mit dem grundlegenden Verrohrungs- und Umleitungsmechanismus, z. B. wenn Argumente Leerzeichen enthalten, die XARGs überwindet.

Außerdem führt XARGS den angegebenen Befehl bei Bedarf wiederholt aus, um alle ihm übergebenen Argumente zu verarbeiten. Tatsächlich können Sie angeben, wie viele Argumente bei jeder Ausführung des angegebenen Befehls vom Standard-Eingabedatenstrom gelesen werden sollen.

Im Allgemeinen sollte der Befehl xargs verwendet werden, wenn die Ausgabe eines Befehls als Teil verwendet werden soll der Optionen oder Argumente eines zweiten Befehls, zu dem die Daten gestreamt werden (mit dem Pipe-Operator "|"). Reguläre Verrohrung ist ausreichend, wenn die Daten die (Standard) Eingabe des zweiten Befehls sein sollen.

Wenn Sie beispielsweise den Befehl ls verwenden, um eine Liste von Dateinamen und Verzeichnissen zu erstellen, und diese Liste dann in die xargs command executing echo, Sie können angeben, wie viele Dateinamen oder Verzeichnisnamen von echo bei jeder Iteration wie folgt verarbeitet werden:

 ls | xargs -n 5 echo 

In diesem Fall empfängt echo fünf Datei- oder Verzeichnisnamen gleichzeitig. Da echo am Ende ein Zeichen für eine neue Zeile hinzufügt, werden in jeder Zeile fünf Namen geschrieben.

Wenn Sie einen Befehl ausführen, der große und nicht vorhersehbare Zahlenelemente (z. B. Dateinamen) zurückgibt, die an einen anderen Befehl weitergegeben werden Es ist eine gute Idee, die maximale Anzahl von Argumenten zu kontrollieren, die der zweite Befehl empfängt, um Überlastung und Absturz zu vermeiden.

Die folgende Befehlszeile partitioniert den von find in den Gruppen von 200 erzeugten Strom von Dateinamen, bevor er an das cp übergeben wird Befehl, der sie in das Verzeichnis backup kopiert.

 finde ./ -type f -name "* .txt" -print | xargs -l200 -i cp -f {} ./backup 

Das Element "./" im Befehl find gibt das aktuelle Verzeichnis für die Suche an. Das Argument "-type f" beschränkt die Suche auf Dateien, und das Flag "-name" * .txt "filtert weiter alles heraus, was nicht die Erweiterung" .txt "hat. Das Flag -i in xargs signalisiert, dass die Notation {} für jeden Dateinamen des Steam steht.

Der folgende Befehl findet Dateien namens core in oder unter dem Verzeichnis / tmp und löscht sie.

find / tmp - name core -type f -print | xargs / bin / rm -f

Beachten Sie, dass dies falsch funktioniert, wenn Dateinamen mit Zeilenumbrüchen, einfachen oder doppelten Anführungszeichen oder Leerzeichen vorhanden sind Die folgende Version verarbeitet die Dateinamen auf diese Weise Diese Datei- oder Verzeichnisnamen, die einfache oder doppelte Anführungszeichen, Leerzeichen oder Zeilenumbrüche enthalten, werden korrekt behandelt.

find / tmp -name Kerntyp -f -print0 | xargs -0 / bin / rm -f

Senden Sie Ihren Kommentar