Simple and straightforward tutorial on xargs!
Innholdsfortegnelse:
- Hvordan bruke Linux
xargs
Command - Slik viser du kommandoen og spør brukeren
- Slik begrenser du antall argumenter
- Slik kjører du flere kommandoer
- Hvordan spesifisere en avgrenser
- Slik leser du elementer fra fil
- Bruke
xargs
medfind
- Bruke xargs for å trimme Whitespace-tegn
- Konklusjon
Med
xargs
verktøyet kan du bygge og utføre kommandoer fra standardinngang. Det brukes vanligvis i kombinasjon med andre kommandoer gjennom rørføring.
Med
xargs
kan du gi standardinngang som argument til kommandolinjeværktøy som
mkdir
og
rm
.
I denne opplæringen skal vi dekke det grunnleggende om bruk av
xargs
kommandoen.
Hvordan bruke Linux
xargs
Command
xargs
leser argumenter fra standardinndata, atskilt med blanke mellomrom eller nylinjer, og utfører den spesifiserte kommandoen ved å bruke inngangen som kommandans argumenter. Hvis ingen kommando er gitt, er standard
/bin/echo
.
Syntaks for
xargs
kommandoen er som følger:
xargs]
Det mest grunnleggende eksemplet på å bruke
xargs
ville være å passere flere strenger atskilt med hvite mellomrom ved hjelp av et rør til
xargs
og kjøre en kommando som vil bruke disse strengene som argumenter.
echo "file1 file2 file3" | xargs touch
I eksemplet over
xargs
vi standardinngangen til
xargs
, og
touch
kommandoen kjøres for hvert argument, og lager tre filer. Dette er det samme som om du ville løpt:
Slik viser du kommandoen og spør brukeren
For å skrive ut kommandoen på terminalen før du kjører den bruker du
-t
(
--verbose
) -alternativet:
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Skriv
y
eller
Y
å bekrefte og kjør kommandoen:
touch file1 file2 file3 ?…y
Dette alternativet er nyttig når du utfører ødeleggende kommandoer.
Slik begrenser du antall argumenter
Som standard bestemmes antall argumenter som sendes til kommandoen av systemets grense.
Alternativet
-n
(
--max-args
) spesifiserer antall argumenter som skal sendes til den gitte kommandoen.
xargs
kjører den spesifiserte kommandoen så mange ganger som nødvendig til alle argumenter er utmattet.
I det følgende eksemplet er antall argumenter som leses fra standardinngangen, begrenset til 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Som du kan se fra verbose-utdataene nedenfor, blir touch-kommandoen utført separat for hvert argument:
touch file1 touch file2 touch file3
Slik kjører du flere kommandoer
Hvis du vil kjøre flere kommandoer med
xargs
, bruker du
-I
alternativet. Det fungerer ved å definere en
replace-str
etter alternativet
-I
, og alle forekomster av
replace-str
erstattes med argumentet som er sendt til xargs.
Følgende
xargs
eksempel kjører to kommandoer, først oppretter de filene ved hjelp av
touch
, og deretter viser de filene med
ls
kommandoen:
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
Et vanlig valg for
replace-str
er
%
. Du kan imidlertid bruke en annen plassholder, for eksempel
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Hvordan spesifisere en avgrenser
Bruk alternativet
-d
(
--delimiter
) for å angi en egendefinert avgrensning, som enten kan være et enkelt tegn eller en fluksekvens som starter med
\
.
Følgende eksempel bruker vi
;
som en avgrenser:
echo "file1;file2;file3" | xargs -d ; -t touch
Slik leser du elementer fra fil
Kommandoen xargs kan også lese elementer fra en fil i stedet for standardinndata. For å gjøre dette, bruk alternativet
-a
(
--arg-file
) etterfulgt av filnavnet.
I eksemplet
xargs
vil
xargs
kommandoen lese
ips.txt
filen og pinge hver IP-adresse.
8.8.8.8 1.1.1.1
Vi bruker også
-L 1
alternativet, som instruerer
xargs
å lese en linje om gangen. Hvis dette alternativet er utelatt, vil
xargs
overføre alle IP-er til en enkelt
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
Bruke
xargs
med
find
xargs
brukes ofte i kombinasjon med
xargs
. Du kan bruke
find
til å søke etter spesifikke filer og deretter bruke
xargs
til å utføre operasjoner på disse filene.
For å unngå problemer med filnavn som inneholder nylinjer eller andre spesialtegn, bruker du alltid alternativet finn
-print0
, som får
find
til å skrive ut hele filnavnet etterfulgt av et nulltegn. Denne utgangen kan tolkes korrekt av
xargs
ved å bruke alternativet
-0
, (-
--null
).
I eksemplet
xargs
vil
find
skrive ut alle navnene på alle filene i katalogen
/var/www/.cache
og
xargs
vil sende filstiene til kommandoen
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Bruke xargs for å trimme Whitespace-tegn
xargs
kan også brukes som et verktøy for å fjerne mellomrom fra begge sider av en gitt streng. Bare rør strengen til kommandoen
xargs
, så gjør den trimmingen:
echo " Long line " | xargs
Long line
Dette kan være nyttig når du sammenligner strenger i skallskript.
#!/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.
Konklusjon
xargs
er et kommandolinjeverktøy på Linux som lar deg bygge og utføre kommandoer.
For mer detaljert informasjon om hvert
xargs
alternativ, les xargs man-siden.
Måned oktober kan ha vært mer eller mindre dominert av Ubuntu Linux for de som forutser den siste Quantal Quetzal-utgivelsen, men denne uken gjorde Linux Mint-prosjektet en spennende kunngjøring om sin egen.

Spesifikt annonserte Linux Mint-prosjektet på tirsdag at det nå har en nettbutikk komplett med flere PCer som tilbyr Linux Mint forhåndslastet.
Samlingen "Linux Diversity": Ett sett, 10 Linux distros

Hvis du handler for et nytt OS , vil dette settet gi deg et utvalg av de nyeste populære alternativene.
Det var en tid da Microsoft Windows styrte operativsystemverdenen. Men de siste årene har det frie og åpne kilde Linux-operativsystemet tatt en stor bit av Windows 'dominans. Men Linux har alltid hatt et bildeproblem med tilsynelatende for vanskelig og uhåndterlig å installere og lære, med en bratt læringskurve knyttet.

Linux Live USB Creator (LiLi for short) tar sikte på å få tak i en nykommers introduksjon til operativsystem ved å gjøre det så enkelt som mulig å komme i gang. Alt du trenger er en USB-pinne med nok plass - minst 2 GB bør gjøre trikset og fem minutter for å installere det. Ingen brukermanual kreves.