Website-Suche

12 praktische Beispiele des Linux-Xargs-Befehls für Anfänger


Xargs ist ein großartiger Befehl, der Datenströme aus der Standardeingabe liest, dann Befehlszeilen generiert und ausführt; Das heißt, es kann die Ausgabe eines Befehls übernehmen und als Argument eines anderen Befehls übergeben. Wenn kein Befehl angegeben ist, führt xargs standardmäßig echo aus. Sie weisen es auch oft an, Daten aus einer Datei statt aus stdin zu lesen.

Es gibt mehrere Möglichkeiten, wie xargs bei der täglichen Verwendung 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 wie folgt mit dem Dienstprogramm tar archivieren.

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

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

2. Sie können die mehrzeilige Ausgabe des Befehls ls auch 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 den Befehl ls und verwenden xargs zu diesem Zweck wie folgt.

ls *upload* | xargs wc

5. Mit Xarags können Sie auch ein Verzeichnis finden und rekursiv entfernen. Der folgende Befehl entfernt beispielsweise 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 suchen und löschen.

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

7. Als Nächstes verwenden Sie xargs, um eine Datei gleichzeitig in mehrere Verzeichnisse 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 die Befehle „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/(.*)\/([^\/]*)/$1\/\L$2/' {} \;

9. Hier ist ein weiteres nützliches Anwendungsbeispiel für xargs. Es zeigt, wie alle Dateien in einem Verzeichnis außer einer oder wenigen Dateien mit einer bestimmten Erweiterung gelöscht werden.

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 anstelle der Standardeingabe zu lesen, indem Sie wie gezeigt das Flag -a verwenden.

xargs -a rss_links.txt

11. Sie können die Ausführlichkeit mit dem Flag -t aktivieren, das xargs anweist, die Befehlszeile vor der Ausführung in der Standardfehlerausgabe zu drucken.

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

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

Darüber hinaus können Sie den Benutzer auch fragen, ob er jede Befehlszeile ausführen und eine Zeile vom Terminal lesen soll, indem Sie wie gezeigt das Flag -p verwenden (geben Sie einfach y ein). ja oder n für nein).

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

Weitere Informationen finden Sie auf der Manpage zu xargs.

man xargs 

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