Simple and straightforward tutorial on xargs!
Inhoudsopgave:
- Hoe Linux
xargsCommand te gebruiken - Hoe de opdracht te bekijken en de gebruiker te vragen
- Hoe het aantal argumenten te beperken
- Meerdere opdrachten uitvoeren
- Een scheidingsteken opgeven
- Hoe items uit bestand te lezen
xargsmetfind- Xargs gebruiken om witruimte-tekens bij te snijden
- Conclusie
Met het hulpprogramma
xargs
kunt u opdrachten bouwen en uitvoeren vanaf standaardinvoer. Het wordt meestal gebruikt in combinatie met andere opdrachten via leidingen.
Met
xargs
kunt u standaardinvoer leveren als argument voor opdrachtregelprogramma's zoals
mkdir
en
rm
.
In deze tutorial behandelen we de basisprincipes van het gebruik van de opdracht
xargs
.
Hoe Linux
xargs
Command te gebruiken
xargs
leest argumenten van de standaardinvoer, gescheiden door lege spaties of nieuwe regels, en voert de opgegeven opdracht uit met de invoer als argumenten van de opdracht. Als er geen opdracht wordt gegeven, is standaard
/bin/echo
.
De syntaxis voor de opdracht
xargs
is als volgt:
xargs]
Het meest eenvoudige voorbeeld van het gebruik van
xargs
zou zijn om meerdere tekenreeksen gescheiden door witruimte met een pipe door te
xargs
aan
xargs
en een opdracht uit te voeren die deze tekenreeksen als argumenten gebruikt.
echo "file1 file2 file3" | xargs touch
In het bovenstaande voorbeeld voeren we de standaardinvoer door naar
xargs
en wordt de
touch
uitgevoerd voor elk argument, waardoor drie bestanden worden gemaakt. Dit is hetzelfde als wanneer je zou rennen:
Hoe de opdracht te bekijken en de gebruiker te vragen
Om de opdracht op de terminal af te drukken voordat deze wordt uitgevoerd, gebruikt u de optie
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Typ
y
of
Y
om te bevestigen en voer de opdracht uit:
touch file1 file2 file3 ?…y
Deze optie is handig bij het uitvoeren van destructieve opdrachten.
Hoe het aantal argumenten te beperken
Standaard wordt het aantal argumenten dat aan de opdracht wordt doorgegeven, bepaald door de limiet van het systeem.
De optie
-n
(
--max-args
) geeft het aantal argumenten aan dat aan de gegeven opdracht moet worden doorgegeven.
xargs
voert de opgegeven opdracht zo vaak als nodig uit totdat alle argumenten zijn uitgeput.
In het volgende voorbeeld is het aantal argumenten dat wordt gelezen uit de standaardinvoer beperkt tot 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Zoals u kunt zien in de uitgebreide uitvoer hieronder, wordt de aanraakopdracht voor elk argument afzonderlijk uitgevoerd:
touch file1 touch file2 touch file3
Meerdere opdrachten uitvoeren
Gebruik de optie
-I
om meerdere opdrachten met
xargs
te voeren. Het werkt door een
replace-str
definiëren na de optie
-I
en alle exemplaren van de
replace-str
worden vervangen door het argument dat wordt doorgegeven aan xargs.
In het volgende
xargs
voorbeeld worden twee opdrachten uitgevoerd, eerst worden de bestanden met
touch
en vervolgens worden de bestanden met de opdracht
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
Een veel voorkomende keuze voor
replace-str
is
%
. U kunt echter een andere tijdelijke aanduiding gebruiken, bijvoorbeeld
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Een scheidingsteken opgeven
Gebruik de optie
-d
(
--delimiter
) om een aangepast scheidingsteken in te stellen. Dit kan een enkel teken zijn of een escape-reeks die begint met
\
.
Het volgende voorbeeld gebruiken we
;
als een scheidingsteken:
echo "file1;file2;file3" | xargs -d ; -t touch
Hoe items uit bestand te lezen
De opdracht xargs kan ook items uit een bestand lezen in plaats van standaardinvoer. Gebruik hiervoor de optie
-a
(
--arg-file
) gevolgd door de bestandsnaam.
In het volgende voorbeeld zal de
xargs
opdracht het bestand
ips.txt
lezen en elk IP-adres pingen.
8.8.8.8 1.1.1.1
We gebruiken ook de optie
-L 1
, die
xargs
opdracht
xargs
om één regel per keer te lezen. Als deze optie wordt weggelaten, geeft
xargs
alle IP's door aan een enkele
ping
opdracht.
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
xargs
met
find
xargs
wordt meestal gebruikt in combinatie met de opdracht
find
. U kunt zoeken gebruiken
find
naar specifieke bestanden te zoeken en vervolgens
xargs
gebruiken om bewerkingen op die bestanden uit te voeren.
Om problemen met bestandsnamen die nieuwe regels of andere speciale tekens bevatten te voorkomen, gebruikt u
-print0
optie find
-print0
, waardoor
find
de volledige bestandsnaam, gevolgd door een null-teken, afdrukt. Deze uitvoer kan correct worden geïnterpreteerd door
xargs
met de optie
-0
, (
--null
).
In het volgende voorbeeld drukt
find
de volledige namen af van alle bestanden in de map
xargs
en geeft
xargs
de bestandspaden door aan de opdracht
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Xargs gebruiken om witruimte-tekens bij te snijden
xargs
kan ook worden gebruikt als een hulpmiddel om witruimte aan beide zijden van een bepaalde tekenreeks te verwijderen.
xargs
de string naar het
xargs
commando en hij zal het bijsnijden:
echo " Long line " | xargs
Long line
Dit kan handig zijn bij het vergelijken van strings in shellscripts.
#!/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.
Conclusie
xargs
is een opdrachtregelhulpprogramma op Linux waarmee u opdrachten kunt bouwen en uitvoeren.
Voor meer gedetailleerde informatie over elke
xargs
optie, lees de xargs man-pagina.
Kunnen dichtknijpen Google OS kan andere smaken van Linux onder druk zetten
Een groot deel van de discussie rond het nieuwe pc-besturingssysteem van Google is gericht op een dreigende strijd met Windows, maar de grootste verliezers kunnen andere Linux-besturingssystemen zijn die met enig gematigd succes op netbooks, industrieanalisten hebben genoten zei.
De verzameling 'Linux Diversity': een pakket, 10 Linux-distro's
Als u op zoek bent naar een nieuw besturingssysteem , deze set geeft je een groot aantal van de nieuwste populaire opties.
Te installeren Review: Linux Live USB Creator maakt het eenvoudiger om Linux
Te installeren Linux is de meeste mensen altijd tegengekomen als iets te gecompliceerd installeren en leren. Maar met Linux Live USB Creator kunt u nu een van de vele Linux-besturingssystemen op uw USB-stick installeren en deze met absolute gemak bedienen.







