Website-Suche

Beispiele für die Verwendung des Befehls xargs unter Linux


Der Linux-Befehl xargs ermöglicht es einem Benutzer, Befehlszeilen von der Standardeingabe aus auszuführen. Wenn das verwirrend klingt, ist es vielleicht einfacher, sich ein einfaches Beispiel anzusehen. Der folgende Befehl verwendet xargs, um alle Dateien zu caten, die mit dem Befehl ls aufgelistet werden.


ls
1.txt  2.txt  3.txt

ls | xargs cat
this is file1
this is file2
this is file3

Im obigen Befehl haben wir die Ausgabe des Befehls ls an xargs weitergeleitet und den Befehl cat verwendet, um den Inhalt in jeder der drei Dateien aufzulisten. Die meisten Verwendungen von xargs beinhalten die Weiterleitung von einem anderen Befehl zu ihm und die Verwendung dieser Option, um nacheinander einen anderen Befehl auszuführen. Wenn Sie mit zusätzlichen grundlegenden Beispielen beginnen möchten, lesen Sie unsere Anleitungen zu xargs für Anfänger oder Multithread-xargs-Beispiele.

In diesem Leitfaden gehen wir verschiedene Befehlszeilenbeispiele des Befehls xargs durch, damit Sie lernen können, wie Sie ihn auf einem Linux-System effektiv verwenden können. Folgen Sie uns, während wir die Grundlagen und komplizierteren Aspekte des Befehls xargs durchgehen.

In diesem Tutorial lernen Sie:

  • So verwenden Sie den Befehl xargs unter Linux, anhand von Beispielen

Verschiedene Beispiele für xargs-Befehle unter Linux

Beispiele für xargs-Befehle

Folgen Sie den folgenden Beispielen, um zu sehen, wie Sie xargs in verschiedenen Szenarien unter Linux verwenden.

  1. Kehren wir zu unserem ursprünglichen Beispiel zurück, um genau zu erklären, was passiert, wenn wir den Befehl xargs ausführen. Im Moment haben wir drei Textdateien, und das Ziel ist es, den Inhalt aller drei mit dem Befehl cat anzuzeigen. Da dies die einzigen drei Dateien in unserem aktuellen Verzeichnis sind, können wir den Befehl ls verwenden, um die Dateinamen abzurufen, und diese Namen dann mit xargs an cat übergeben.

    
    ls | xargs cat
    this is file1
    this is file2
    this is file3
    

    Was hier wirklich passiert, entspricht dem folgenden Befehl:

    
    cat 1.txt 2.txt 3.txt 
    
  2. Um den Befehl zu sehen, den xargs ausführt, können Sie die Option -t verwenden. Dadurch wird der Befehl weiterhin ausgeführt, aber es gibt uns die Möglichkeit, zu sehen, wie der endgültige Befehl tatsächlich formatiert wurde.

    
    ls | xargs -t cat
    cat 1.txt 2.txt 3.txt 
    this is file1
    this is file2
    this is file3
    
  3. Wir können auch die Option -p verwenden, die uns vor dem Ausführen des Befehls um Bestätigung bittet. Dies ist praktisch, wenn Sie z.B. den Befehl rm mit xargs ausführen, da Sie sonst nicht versehentlich Dateien löschen möchten. Sie können entweder y (ja) eingeben, um die Ausführung des Befehls zu bestätigen, oder n (nein), um ihn abzubrechen.

    
    ls | xargs -p rm
    rm 1.txt 2.txt 3.txt ?...y
    
  4. In unserem vorherigen Beispiel führt xargs cat 1.txt 2.txt 3.txt aus. Mit anderen Worten, es wird nur ein einziger Befehl ausgeführt und alle Dateinamen werden angehängt. Wir können xargs dazu bringen, jeden cat-Befehl separat auszuführen, indem wir die Option -n (max. Argumente) verwenden. Hier ist ein Beispiel, in dem wir auch die Option -t eingefügt haben, damit wir sehen können, wie dieser Befehl cat drei verschiedene Male ausführt, anstatt nur ein einziges Mal.

    
    ls | xargs -t -n 1 cat
    cat 1.txt 
    this is file1
    cat 2.txt 
    this is file2
    cat 3.txt 
    this is file3
    

    Die Option -n 1 teilt xargs in diesem Fall mit, dass es immer nur einen Dateinamen auf einmal verwenden kann (maximal). Hier sehen Sie, wie es sich unterscheiden würde, wenn wir stattdessen -n 2 verwenden würden.

    
    ls | xargs -t -n 2 cat
    cat 1.txt 2.txt 
    this is file1
    this is file2
    cat 3.txt 
    this is file3
    
  5. xargs kann auch mehrere Befehle ausführen, wenn Sie die Option -I verwenden. Sie müssen eine "replace string" angeben, die mit dieser Option verwendet werden soll. Eine sehr gebräuchliche Verwendung ist ein Prozentzeichen, das wir unten verwenden. Für ein einfaches Beispiel führt der folgende Befehl touch und dann cat für unsere drei Dateien aus, deren Namen von ls an xargs übergeben werden.

    
    ls | xargs -t -I % sh -c '{ touch %; cat %; }'
    sh -c '{ touch 1.txt; cat 1.txt; }' 
    this is file1
    sh -c '{ touch 2.txt; cat 2.txt; }' 
    this is file2
    sh -c '{ touch 3.txt; cat 3.txt; }' 
    this is file3
    
  6. Eine weitere praktische Anwendung von xargs ist die Fähigkeit, Eingaben von Dateien zu akzeptieren. Dies geschieht mit der Option -a. Nehmen Sie zum Beispiel den folgenden Befehl, bei dem wir eine Liste von Dateinamen an xargs übergeben und diese Dateien dann caten.

    
    xargs -t -a files.txt cat
    cat 1.txt 2.txt 3.txt 
    this is file1
    this is file2
    this is file3
    

    Wie Sie sich wahrscheinlich vorstellen können, sieht der Inhalt file.txt wie folgt aus:

    
    1.txt
    2.txt
    3.txt
    


  7. Eine der häufigsten Anwendungen für xargs ist, wenn es mit dem Befehl find kombiniert wird. find enthält bereits die Option -exec, so dass es in der Lage ist, Befehle für alle gefundenen Dateien auszuführen, aber xargs ist viel effizienter. In Ihrem find-Befehl sollten Sie die Option -print0 hinzufügen, damit nach jedem Dateinamen ein zusätzliches Nullzeichen ausgegeben wird. Sie müssen auch eine entsprechende Option -0 in den Befehl xargs einfügen. Hier ist ein Beispiel, in dem wir nach .txt Dateien suchen und cat auf jeder Datei ausführen. Auch hier werden wir die Option -t anhängen, um zu sehen, dass der Befehl xargs ausgeführt wird.

    
    find . -name "*.txt" -print0 | xargs -t -0 cat
    cat ./3.txt ./2.txt ./1.txt 
    this is file3
    this is file2
    this is file1
    

Diese Beispiele sollten ausreichen, um Ihnen zu helfen, den Befehl xargs optimal zu nutzen. Es gibt eine Menge, was Sie mit dem Befehl machen können, und unzählige verschiedene Szenarien, in denen er sich als nützlich erweisen kann. Wenn Sie mehr erfahren möchten, empfehlen wir Ihnen, auf der Man-Seite weitere Anwendungsbeispiele zu finden.


man xargs

Abschließende Gedanken

In dieser Anleitung haben wir anhand verschiedener Beispiele unter Linux gesehen, wie Sie den Befehl xargs verwenden. Wir kombinierten es mit mehreren anderen Befehlen und lernten auch, wie man es verwendet, um den Inhalt einer Datei zu lesen. Der Befehl xargs hat unendlich viele verschiedene Anwendungen und erweist sich als eines der vielseitigsten Werkzeuge auf der Linux-Befehlszeile.

Verwandte Artikel: