Übersicht
xargs nimmt die über eine Pipe (|) übergebene Standardeingabe entgegen und wandelt sie in Argumente für andere Befehle um, die dann ausgeführt werden. Die Option -I ist nützlich, um jede Eingabezeile durch eine angegebene Platzhalterzeichenfolge zu ersetzen, was besonders nützlich ist, um Dateinamen, die Leerzeichen oder Sonderzeichen enthalten, sicher zu verarbeiten.
Hauptmerkmale
- Umwandlung von Eingabeelementen in Argumente für andere Befehle
- Flexible Befehlsausführung mit Platzhaltern (-I)
- Sichere Verarbeitung von Dateinamen mit Leerzeichen und Sonderzeichen
- Unterstützung für parallele Verarbeitung (-P)
Wichtige Optionen
Der Befehl xargs bietet verschiedene Optionen, aber hier werden die wichtigsten Optionen vorgestellt, die häufig zusammen mit der Option -I verwendet werden.
Platzhalter und Eingabeverarbeitung
Ausführungssteuerung
Erzeugter Befehl:
Kombinieren Sie die Befehle.
Beschreibung:
`xargs` Führen Sie den Befehl aus.
Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.
Anwendungsbeispiele
Verschiedene Beispiele für die Verwendung des Befehls xargs mit der Option -I.
Gefundene Dateien in ein bestimmtes Verzeichnis verschieben
find . -name "*.txt" -print0 | xargs -0 -I {} mv {} /tmp/new_dir
Verschiebt alle Dateien mit der Erweiterung '.txt' im aktuellen Verzeichnis nach '/tmp/new_dir'. Dies verarbeitet Dateinamen mit Leerzeichen sicher.
Inhalt von Dateien mit bestimmtem Text ändern
grep -l "old_text" *.txt | xargs -I {} sed -i 's/old_text/new_text/g' {}
Ändert 'old_text' in 'new_text' in allen '.txt'-Dateien im aktuellen Verzeichnis. Die Option -l gibt nur die Dateinamen aus.
Dateien mit Leerzeichen im Namen löschen
find . -name "my file.txt" -print0 | xargs -0 -I {} rm {}
Löscht die Datei 'my file.txt', die Leerzeichen im Namen enthält, sicher. Die Kombination der Optionen -print0 und -0 ist wichtig.
Separaten Befehl für jede Datei ausführen
ls *.log | xargs -I file_name echo "Processing file: file_name"
Gibt die Meldung 'Processing file: [Dateiname]' für alle '.log'-Dateien im aktuellen Verzeichnis aus.
Tipps & Hinweise
Nützliche Tipps und Vorsichtsmaßnahmen bei der Verwendung der Option xargs -I.
xargs -I vs xargs -0
Beide Optionen verarbeiten Eingabeelemente, aber auf unterschiedliche Weise.
- -I (replace-str): Ersetzt jede 'Zeile' der Eingabe durch einen Platzhalter. Da Zeilenumbrüche als Trennzeichen verwendet werden, kann dies zu Problemen führen, wenn Dateinamen Zeilenumbrüche enthalten.
- -0: Geht davon aus, dass die Eingabeelemente durch Nullzeichen getrennt sind. Die Verwendung zusammen mit 'find -print0' ermöglicht die sicherste Verarbeitung von Dateinamen, die Leerzeichen, Zeilenumbrüche oder Sonderzeichen enthalten.
Vorsicht bei der Verwendung mit dem Befehl rm
Seien Sie äußerst vorsichtig, wenn Sie den Befehl 'rm' mit xargs ausführen. Sie könnten versehentlich wichtige Dateien löschen. Erwägen Sie daher, zuerst die auszuführenden Befehle mit 'echo' oder der Option '-t' zu überprüfen oder eine interaktive Option wie 'rm -i' zu verwenden.
Nutzung paralleler Verarbeitung (-P)
Bei der Verarbeitung großer Mengen von Dateien oder zeitaufwändigen Aufgaben kann die Verwendung der Option '-P' zur gleichzeitigen Ausführung mehrerer Prozesse die Bearbeitungszeit erheblich verkürzen. Zum Beispiel führt 'xargs -P 4' vier Prozesse parallel aus.