Linux команда xargs.
Innehållsförteckning:
- Hur man använder Linux
xargskommando - Så här visar du kommandot och uppmanar användaren
- Hur man begränsar antalet argument
- Hur du kör flera kommandon
- Så här anger du en avgränsare
- Hur man läser artiklar från fil
- Använda
xargsmedfind - Använda xargs för att trimma Whitespace-karaktärer
- Slutsats
Med
xargs
verktyget kan du bygga och köra kommandon från standardinmatning. Det används vanligtvis i kombination med andra kommandon genom rörledningar.
Med
xargs
kan du tillhandahålla standardinmatning som argument till kommandoradsverktyg som
mkdir
och
rm
.
I denna handledning täcker vi grunderna för att använda kommandot
xargs
.
Hur man använder Linux
xargs
kommando
xargs
läser argument från standardinmatningen, åtskilda med tomma mellanslag eller nylinjer, och kör det angivna kommandot med hjälp av ingången som kommandans argument. Om inget kommando tillhandahålls är standard
/bin/echo
.
Syntaxen för kommandot
xargs
är följande:
xargs]
Det mest grundläggande exemplet på att använda
xargs
skulle vara att passera flera strängar separerade med vitrum med ett rör för att
xargs
och köra ett kommando som kommer att använda strängarna som argument.
echo "file1 file2 file3" | xargs touch
I exemplet ovan rör vi standardingången till
xargs
, och
xargs
körs för varje argument och skapar tre filer. Detta är samma sak som om du skulle springa:
Så här visar du kommandot och uppmanar användaren
För att skriva ut kommandot på terminalen innan du kör det använder
--verbose
alternativet
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Skriv
y
eller
Y
att bekräfta och köra kommandot:
touch file1 file2 file3 ?…y
Det här alternativet är användbart när du utför destruktiva kommandon.
Hur man begränsar antalet argument
Som standard bestäms antalet argument som skickas till kommandot av systemets gräns.
--max-args
-n
(
--max-args
) anger antalet argument som ska överföras till det givna kommandot.
xargs
kör det angivna kommandot så många gånger som behövs tills alla argument är uttömda.
I följande exempel är antalet argument som läses från standardinmatningen begränsat till 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Som du kan se från verbosutgången nedan körs beröringskommandot separat för varje argument:
touch file1 touch file2 touch file3
Hur du kör flera kommandon
För att köra flera kommandon med
xargs
, använder du
-I
alternativet. Det fungerar genom att definiera en
replace-str
efter alternativet
-I
och alla förekomster av
replace-str
ersätts med argumentet som skickas till xargs.
Följande
xargs
exempel kör två kommandon, först skapar de filerna med
touch
och sedan listar filerna med kommandot
ls
:
echo "file1 file2 file3" | xargs -t -I % sh -c '{ touch %; ls -l %; }'
-rw-r--r-- 1 linuxize users 0 May 6 11:54 file1 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file2 -rw-r--r-- 1 linuxize users 0 May 6 11:54 file3
Ett vanligt val för
replace-str
är
%
. Du kan dock använda en annan platshållare, till exempel
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Så här anger du en avgränsare
Använd alternativet
-d
(-
--delimiter
) för att ställa in en anpassad avgränsare, som kan vara antingen ett enda tecken eller en flygsekvens som börjar med
\
.
Följande exempel använder vi
;
som en avgränsare:
echo "file1;file2;file3" | xargs -d ; -t touch
Hur man läser artiklar från fil
Kommandot xargs kan också läsa objekt från en fil istället för standardinmatning. För att göra det använder du alternativet
-a
(
--arg-file
) följt av filnamnet.
I följande exempel kommer
xargs
kommandot att läsa
ips.txt
filen och pinga varje IP-adress.
8.8.8.8 1.1.1.1
Vi använder också alternativet
-L 1
, som instruerar
xargs
att läsa en rad samtidigt. Om det här alternativet utelämnas kommer
xargs
att överföra alla IP till ett enda
ping
kommando.
xargs -t -L 1 -a ips.txt ping -c 1
ping -c 1 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. 64 bytes from 8.8.8.8: icmp_seq=1 ttl=50 time=68.1 ms… ping -c 1 1.1.1.1 PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data. 64 bytes from 1.1.1.1: icmp_seq=1 ttl=59 time=21.4 ms
Använda
xargs
med
find
xargs
används oftast i kombination med sökkommandot. Du kan använda
find
att söka efter specifika filer och sedan använda
xargs
att utföra operationer på dessa filer.
För att undvika problem med filnamn som innehåller nya linjer eller andra specialtecken, använd
-print0
alternativet find
-print0
, vilket gör att
find
skriver ut hela filnamnet följt av ett nolltecken. Denna utgång kan tolkas korrekt av
xargs
med
xargs
-0
, (-
--null
).
I följande exempel kommer
find
att skriva ut de fullständiga namnen på alla filer i
/var/www/.cache
och
xargs
till kommandot
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Använda xargs för att trimma Whitespace-karaktärer
xargs
kan också användas som ett verktyg för att ta bort mellanrum från båda sidor av en given sträng. Rör helt enkelt strängen till kommandot
xargs
, så gör det klippningen:
echo " Long line " | xargs
Long line
Detta kan vara användbart när man jämför strängar i skalskript.
#!/bin/bash VAR1=" Linuxize " VAR2="Linuxize" if]; then echo "Strings are equal." else echo "Strings are not equal." fi ## Using xargs to trim VAR1 if]; then echo "Strings are equal." else echo "Strings are not equal." fi
Strings are not equal. Strings are equal.
Slutsats
xargs
är ett kommandoradsverktyg på Linux som gör att du kan bygga och köra kommandon.
För mer detaljerad information om varje
xargs
alternativ, läs xargs man-sidan.
Oktober månad kan ha dominerats mer eller mindre av Ubuntu Linux för de som förutser den senaste Quantal Quetzal-versionen, men i veckan gjorde Linux Mint-projektet ett spännande meddelande om
I synnerhet lanserade Linux Mint-projektet på tisdag att det nu har en onlinebutik komplett med flera datorer som erbjuder Linux Mint förladdad. "
Samlingen "Linux Diversity": Ett kit, 10 Linux distros
Om du handlar om ett nytt OS , kommer den här uppsättningen att ge dig en mängd olika de senaste populära alternativen.
Linux: Linux Live USB Creator gör det lättare att installera Linux
Linux har alltid stött på de flesta som något för komplicerat att installera och lära. Men med Linux Live USB Creator kan du nu installera ett av många Linux-operativsystem på din USB-stick och använda det helt enkelt.







