Om du försöker överföra utdata från ett Linux-kommando till ett annat kan du stöta på fel där kommandot misslyckas eftersom dess argumentlista är för lång.
Lyckligtvis finns det ett kommando på Linux-system som korrekt formaterar argument till kommandon. Den heter xargs och så här använder du den.
Varför använda xargs?
Vad xargs gör är att det tar emot standardutdata och formaterar det så att ett annat kommando kan ta emot det. Medan många Linux-verktyg kan acceptera standardinmatning, accepterar vissa bara argument som input.
Dessa kan misslyckas om du försöker omdirigera standardindata till kommandot. Vissa kommandon accepterar fortfarande bara ett visst antal argument och xargs tar hand om detta åt dig.
Hur man använder xargs på Linux
Du kan ringa xargs så här:
xargs [kommando]
xargs håller reda på längden på argument som ett kommando accepterar och formaterar standardinmatning för att mata ut en argumentlista att leverera till kommandot. När den når gränsen för en kommandorad kommer den att göra det anropa kommandot återigen med de återstående argumenten.
Använda xargs i pipelines
xargs användbarhet kommer när den används i pipelines. Ett konstruerat exempel skulle vara piping cat to echo, vilket är ett kommando som bara accepterar argument, inte standardinmatning.
katt | eko
Detta kommer att få eko att skriva ut vad du än skriver på en rad så snart du trycker Ctrl + D.
xargs används oftast med kommandot find, with hitta kommandot används för att lista filer och xargs används för att bearbeta listan med filer på något sätt.
Syntaxen för kommandot find är hårig nog, så varför ta med ett annat kommando i den? Om du använder hittas "-exec", kommer den att snurra upp en ny process varje gång den söker igenom en fil i katalogen. Att använda xargs är mer effektivt.
Du kanske vill ta bort filer i en katalog som är äldre än ett visst datum, till exempel 90 dagar. För att göra detta använder du denna pipeline:
hitta. -mtime +90 -print | xargs rm
xargs hjälper Linux-kommandon att bearbeta inmatning korrekt
Med xargs kan du nu se till att kommandon tar argument som du förväntar dig. I kombination med hitta låter det dig bearbeta filer på din maskin snabbt.
Möjligheten att omdirigera input och output i skalet är en av de bestående styrkorna hos Linux som en utväxt av Unix-filosofin. Om du vill lära dig mer om hur Linux input/output omdirigering fungerar, läs vidare.
Förbättra ditt Linux kommandoradsarbetsflöde genom att koppla ihop flera kommandon med standard I/O.
Läs Nästa
- Linux
- Linux-kommandon
- Linux Bash Shell
David är en frilansskribent baserad i Pacific Northwest, men kommer ursprungligen från Bay Area. Han har varit en teknikentusiast sedan barnsben. Davids intressen inkluderar att läsa, titta på tv-program och filmer av hög kvalitet, retrospel och skivsamling.
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera