`xargs` voor het koppelen van commando's
Leer opdrachtregels samenstellen en uitvoeren vanuit standaardinvoer met `xargs` voor efficiënte taakautomatisering.
`xargs` voor het koppelen van commando's is een gratis Beheersing van de Linux-opdrachtregel-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Beheersing van de Linux-opdrachtregel. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Beheersing van de Linux-opdrachtregel bevat in totaal 4 lessen.
Introductie tot `xargs`
xargs is een krachtig opdrachtregelprogramma dat als brug tussen opdrachten werkt. Het leest invoer van de standaardinvoer (stdin), bouwt nieuwe opdrachtregels en voert deze vervolgens uit.
- Het leest items (meestal woorden of regels) van stdin.
- Vervolgens gebruikt het deze items als argumenten voor een andere opdracht.
- Dit is bijzonder nuttig voor het automatiseren van taken met veel bestanden of invoer uit andere opdrachten.
Basisgebruik van `xargs`
Laten we xargs in zijn eenvoudigste vorm bekijken. Hier stuurt echo een lijst met woorden naar xargs. xargs neemt deze woorden vervolgens over en geeft ze als argumenten door aan een tweede opdracht met echo.
Voer dit voorbeeld uit:
echo "apple banana cherry" | xargs echo`find` combineren met `xargs`
Een van de meest gebruikelijke en krachtigste toepassingen van xargs is het verwerken van bestanden die met de opdracht find zijn gevonden. find geeft bestanden weer en xargs gebruikt hun namen vervolgens om een bewerking uit te voeren.
Eerst maken we enkele voorbeeldbestanden. Daarna gebruiken we find om .txt-bestanden te zoeken en xargs om hun namen weer te geven.
touch doc1.txt doc2.txt report.pdf
find . -name "*.txt" | xargs echoStandaardverwerking van argumenten
Standaard probeert xargs zoveel mogelijk argumenten uit de standaardinvoer te halen en voegt het deze toe aan één uitvoering van de doelopdracht.
- Het leest items die door spaties of nieuwe regels van elkaar zijn gescheiden.
- Het bouwt een opdracht door deze items aan het einde toe te voegen.
- Als de lijst met items te lang is voor één opdracht, voert het de opdracht automatisch meerdere keren uit.
Aantal argumenten beperken met `-n`
Soms moet je de doelopdracht meerdere keren uitvoeren, telkens met een specifiek aantal argumenten. Met de optie -n geef je op hoeveel argumenten xargs per uitvoering aan elke opdracht moet doorgeven.
Hier voert xargs echo uit voor elke twee woorden die het ontvangt:
echo "one two three four five six" | xargs -n 2 echoAangepaste plaatsing met `-I`
Wanneer het invoeritem niet het laatste argument is, heb je meer controle nodig. Met de optie -I kun je een tijdelijke aanduiding definiëren (bijvoorbeeld {}) die xargs voor elk invoeritem vervangt.
Zo kun je het item overal in je opdracht invoegen, niet alleen aan het einde.
echo "fileA.txt fileB.txt" | xargs -I {} echo "Processing: {}"Parallel uitvoeren met `-P`
Voor taken die onafhankelijk van elkaar kunnen worden uitgevoerd, kan xargs -P het proces aanzienlijk versnellen door meerdere opdrachten parallel uit te voeren. Je geeft op hoeveel parallelle processen er moeten worden gestart.
-P 0geeftxargsde opdracht zoveel mogelijk processen uit te voeren.- Wees voorzichtig met opdrachten die veel bronnen gebruiken, want hiermee kan je systeem overbelast raken.
- Dit is uitstekend geschikt voor batchverwerking, zoals het aanpassen van het formaat van veel afbeeldingen.
Veilige verwerking met `-0`
Bestandsnamen in Linux kunnen spaties, nieuwe regels of andere speciale tekens bevatten. Als je hier niet goed mee omgaat, kunnen deze tekens xargs in de war brengen, omdat het invoer normaal gesproken op spaties of nieuwe regels splitst.
De oplossing is om find -print0 (dat door nultekens beëindigde tekenreeksen uitvoert) te gebruiken met xargs -0 (dat zulke tekenreeksen veilig leest).
touch "my file with spaces.txt"
find . -name "*.txt" -print0 | xargs -0 echoPraktisch gebruik: bestanden verwijderen
Laten we wat we hebben geleerd combineren voor een praktische taak: alle .bak-bestanden in de huidige map zoeken en verwijderen. We gebruiken hiervoor find -print0 en xargs -0 rm.
Let op: De opdracht rm verwijdert bestanden definitief. Controleer je opdrachten altijd goed voordat je ze uitvoert!
touch file1.txt.bak file2.log.bak temp.bak
echo "Files before deletion:"
ls -l *.bak
find . -name "*.bak" -print0 | xargs -0 rm
echo "Files after deletion:"
ls -l *.bakKorte controle over `xargs`
Bekijk de volgende opdracht:
echo "one two three four five" | xargs -n 2 echoWat is precies de uitvoer?
Samenvatting: `xargs` voor automatisering
Je hebt geleerd hoe xargs als een krachtige brug werkt: het zet standaardinvoer om in argumenten voor andere opdrachten. Het is een fundamenteel hulpmiddel voor efficiënte automatisering op de opdrachtregel!
- Het is onmisbaar voor het koppelen van opdrachten zoals
findaan andere hulpprogramma's. - Opties zoals
-n,-I,-Pen-0bieden nauwkeurige controle over het samenstellen en uitvoeren van opdrachten. - Het gebruik van
xargs -0metfind -print0is essentieel voor het veilig verwerken van bestandsnamen met speciale tekens.
Blijf oefenen om dit veelzijdige hulpmiddel goed onder de knie te krijgen en je shellscripts efficiënter te maken!
Leer Beheersing van de Linux-opdrachtregel met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “`xargs` voor het koppelen van commando's” gratis?
Ja — de volledige tekst van “`xargs` voor het koppelen van commando's” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Beheersing van de Linux-opdrachtregel wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Beheersing van de Linux-opdrachtregel bevat in totaal 4 lessen.
Wat leer ik in “`xargs` voor het koppelen van commando's”?
Leer opdrachtregels samenstellen en uitvoeren vanuit standaardinvoer met `xargs` voor efficiënte taakautomatisering. Je oefent met Beheersing van de Linux-opdrachtregel door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Beheersing van de Linux-opdrachtregel te beginnen?
Ervaring vooraf is niet nodig. Beheersing van de Linux-opdrachtregel op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “`xargs` voor het koppelen van commando's”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Beheersing van de Linux-opdrachtregel?
Ja. Elke les over Beheersing van de Linux-opdrachtregel bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Reguliere expressies beheersen (regex)
- Geavanceerde patronen met `grep` en `find`
- `xargs` voor het koppelen van commando's
- Streambewerking op schaal met sed en tr