Website-Suche

12 praktische Beispiele für den Linux-Xargs-Befehl für Anfänger


Xargs ist ein großartiger Befehl, der Datenströme aus Standardeingaben liest, dann Befehlszeilen generiert und ausführt. Das bedeutet, dass es die Ausgabe eines Befehls entgegennehmen und sie als Argument eines anderen Befehls übergeben kann. Wenn kein Befehl angegeben ist, führt xargs standardmäßig echo aus. Sie können es auch anweisen, Daten aus einer Datei anstelle von stdin zu lesen.

Es gibt mehrere Möglichkeiten, wie xargs im täglichen Gebrauch der Befehlszeile nützlich ist. In diesem Artikel erklären wir 12 praktische Linux-xargs-Befehlsbeispiele für Anfänger.

1. Das erste Beispiel zeigt, wie Sie alle .png Bilder ermitteln und mit dem Dienstprogramm tar wie folgt archivieren können.

Hier ermöglicht der Aktionsbefehl -print0 das Drucken des vollständigen Dateipfads in der Standardausgabe, gefolgt von einem Nullzeichen und dem Flag -0 xargs, das effektiv mit Leerzeichen in Dateinamen umgeht.

$ find Pictures/tecmint/ -name "*.png" -type f -print0 | xargs -0 tar -cvzf images.tar.gz

2. Sie können auch die mehrzeilige Ausgabe des Befehls ls mit xargs wie folgt in eine einzelne Zeile konvertieren.

$ ls -1 Pictures/tecmint/
ls -1 Pictures/tecmint/ | xargs

3. Um eine kompakte Liste aller Linux-Benutzerkonten auf dem System zu erstellen, verwenden Sie den folgenden Befehl.

$ cut -d: -f1 < /etc/passwd | sort | xargs

4. Angenommen, Sie haben eine Liste von Dateien und möchten die Anzahl der Zeilen/Wörter/Zeichen in jeder Datei in der Liste wissen, können Sie zu diesem Zweck den Befehl ls und xargs wie folgt verwenden.

$ ls *upload* | xargs wc

5. Xarags ermöglicht es Ihnen auch, ein Verzeichnis zu finden und rekursiv zu entfernen, z. B. entfernt der folgende Befehl rekursiv DomTerm im Verzeichnis Downloads.

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 /bin/rm -v -rf "{}"

6. Ähnlich wie beim vorherigen Befehl können Sie auch alle Dateien mit dem Namen net_stats im aktuellen Verzeichnis finden und löschen.

$ find . -name "net_stats" -type f -print0 | xargs -0 /bin/rm -v -rf "{}"

7. Verwenden Sie als Nächstes xargs, um eine Datei in mehrere Verzeichnisse gleichzeitig zu kopieren. In diesem Beispiel versuchen wir, die Datei zu kopieren.

$ echo ./Templates/ ./Documents/ | xargs -n 1 cp -v ./Downloads/SIC_Template.xlsx 

8. Sie können auch den Befehl find, xargs und rename zusammen verwenden, um alle Dateien oder Unterverzeichnisse in einem bestimmten Verzeichnis wie folgt in Kleinbuchstaben umzubenennen.

$ find Documnets -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/\\/\L$2/' {} \;

9. Hier ist ein weiteres nützliches Anwendungsbeispiel für xargs, es zeigt, wie man alle Dateien innerhalb eines Verzeichnisses löscht, mit Ausnahme einer oder weniger Dateien mit einer bestimmten Erweiterung.

$ find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}

10. Wie bereits erwähnt, können Sie xargs anweisen, Elemente aus einer Datei zu lesen, anstatt die Standardeingabe zu verwenden, indem Sie das Flag -a verwenden, wie gezeigt.

$ xargs -a rss_links.txt

11. Sie können die Ausführlichkeit mit dem Flag -t aktivieren, das xargs anweist, die Befehlszeile in der Standardfehlerausgabe auszugeben, bevor sie ausgeführt wird.

$ find Downloads -name "DomTerm" -type d -print0 | xargs -0 -t /bin/rm -rf "{}"

12. Standardmäßig beendet/trennt xargs Elemente mit Leerzeichen, Sie können das Flag -d verwenden, um das Trennzeichen festzulegen, das ein einzelnes Zeichen, ein Zeichen-Escape-Zeichen im C-Stil wie \n oder ein oktaler oder hexadezimaler Escape-Code sein kann.

Darüber hinaus können Sie den Benutzer auch fragen, ob jede Befehlszeile ausgeführt und eine Zeile aus dem Terminal gelesen werden soll, indem Sie das Flag -p wie gezeigt verwenden (geben Sie einfach y für yes oder n für no ein).

$ echo ./Templates/ ./Documents/ | xargs -p -n 1 cp -v ./Downloads/SIC_Template.xlsx 

Weitere Informationen finden Sie auf der xargs-Manpage.

$ man xargs 

Das war's fürs Erste! Xargs ist ein leistungsstarkes Dienstprogramm zum Erstellen einer Befehlszeile; Es kann Ihnen helfen, die Ausgabe eines Befehls als Argument eines anderen Befehls zur Verarbeitung zu übergeben. In diesem Artikel haben wir 12 praktische Beispiele für xargs-Befehle für Anfänger erklärt. Teilen Sie uns Ihre Gedanken oder Fragen über das untenstehende Feedback-Formular mit.

Verwandte Artikel: