Overzicht
xargs neemt standaardinvoer die via een pipe (|) wordt doorgegeven, converteert deze naar argumenten voor andere commando's en voert deze uit. De -I optie is handig bij het uitvoeren van commando's door elke invoerregel te vervangen door een opgegeven placeholder-tekenreeks, waardoor het veilig kan omgaan met bestandsnamen, zelfs als deze spaties of speciale tekens bevatten.
Belangrijkste kenmerken
- Converteert invoeritems naar argumenten voor andere commando's
- Flexibele commando-uitvoering met placeholders (-I)
- Veilige verwerking van bestandsnamen met spaties en speciale tekens
- Ondersteuning voor parallelle verwerking (-P)
Belangrijkste opties
Het xargs-commando biedt verschillende opties, maar hier worden de belangrijkste opties geïntroduceerd die vaak samen met de -I optie worden gebruikt.
Placeholder en invoerverwerking
Uitvoeringscontrole
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`xargs` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Diverse voorbeelden van het gebruik van het xargs -I optie.
Gevonden bestanden verplaatsen naar een specifieke map
find . -name "*.txt" -print0 | xargs -0 -I {} mv {} /tmp/new_dir
Verplaatst alle bestanden met de extensie '.txt' in de huidige map naar '/tmp/new_dir'. Bestandsnamen met spaties worden veilig verwerkt.
Bestandsinhoud met specifieke tekst wijzigen
grep -l "old_text" *.txt | xargs -I {} sed -i 's/old_text/new_text/g' {}
Wijzigt 'old_text' naar 'new_text' in alle '.txt' bestanden in de huidige map. De -l optie drukt alleen de bestandsnamen af.
Bestandsnamen met spaties verwijderen
find . -name "my file.txt" -print0 | xargs -0 -I {} rm {}
Verwijdert veilig het bestand 'my file.txt' dat spaties in de bestandsnaam bevat. De combinatie van -print0 en -0 opties is belangrijk.
Afzonderlijk commando uitvoeren voor elk bestand
ls *.log | xargs -I file_name echo "Processing file: file_name"
Drukt het bericht 'Processing file: [bestandsnaam]' af voor alle '.log' bestanden in de huidige map.
Tips & Aandachtspunten
Handige tips en aandachtspunten bij het gebruik van de xargs -I optie.
xargs -I versus xargs -0
Beide opties verwerken invoeritems, maar op verschillende manieren.
- -I (replace-str): Vervangt elke 'regel' van de invoer door een placeholder. Omdat deze wordt gescheiden door newline-tekens, kan dit problemen veroorzaken als bestandsnamen newlines bevatten.
- -0: Gaat ervan uit dat invoeritems worden gescheiden door nul (null) tekens. Het gebruik met 'find -print0' zorgt voor de veiligste verwerking, zelfs als bestandsnamen spaties, newlines of speciale tekens bevatten.
Voorzichtigheid bij gebruik met het rm-commando
Wees zeer voorzichtig bij het uitvoeren van het 'rm'-commando met xargs. U kunt per ongeluk belangrijke bestanden verwijderen, dus overweeg eerst de uit te voeren commando's te controleren met 'echo' of de '-t' optie, of gebruik interactieve opties zoals 'rm -i'.
Gebruik van parallelle verwerking (-P)
Bij het verwerken van grote hoeveelheden bestanden of langdurige taken kan het gebruik van de '-P' optie om meerdere processen tegelijkertijd uit te voeren de verwerkingstijd aanzienlijk verkorten. Bijvoorbeeld, 'xargs -P 4' voert 4 processen parallel uit.