Simple and straightforward tutorial on xargs!
Sadržaj:
- Kako se koristi Linux
xargs
naredba - Kako pregledati naredbu i upitati korisnika
- Kako ograničiti broj argumenata
- Kako pokrenuti više naredbi
- Kako odrediti razdjelnik
- Kako čitati stavke iz datoteke
- Korištenje
xargs
saxargs
- Korištenje xargs-a za urezivanje znakova bijelog prostora
- Zaključak
xargs
program
xargs
omogućuje vam izradu i izvršavanje naredbi sa standardnog unosa. Obično se koristi u kombinaciji s drugim naredbama kroz cjevovod.
Pomoću
xargs
možete pružiti standardni unos kao argument uslužnim programima naredbenog retka poput
mkdir
i
rm
.
U ovom ćemo udžbeniku
xargs
osnove upotrebe naredbe
xargs
.
Kako se koristi Linux
xargs
naredba
xargs
čita argumente sa standardnog ulaza, razdvojene praznim razmacima ili novim linijama i izvršava zadanu naredbu koristeći ulaz kao argumente naredbe. Ako nije data naredba, zadano je
/bin/echo
.
Sintaksa naredbe
xargs
je sljedeća:
xargs]
Najosnovniji primjer upotrebe
xargs
bio bi proslijediti nekoliko nizova odvojenih s razmakom pomoću cijevi u
xargs
i pokrenuti naredbu koja će te nizove koristiti kao argumente.
echo "file1 file2 file3" | xargs touch
U gornjem primjeru postavljamo standardni ulaz u
xargs
, a
touch
naredba se izvodi za svaki argument, stvarajući tri datoteke. To je isto kao da se pokrenete:
Kako pregledati naredbu i upitati korisnika
Za ispis naredbe na terminalu prije izvršenja koristite opciju
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Upišite
y
ili
Y
da biste potvrdili i pokrenite naredbu:
touch file1 file2 file3 ?…y
Ova je opcija korisna pri izvršavanju destruktivnih naredbi.
Kako ograničiti broj argumenata
Prema zadanom, broj argumenata prosljeđenih naredbi određuje se ograničenjem sustava.
Opcija
-n
(
--max-args
) određuje broj argumenata koji se trebaju proslijediti zadanoj naredbi.
xargs
izvršava
xargs
naredbu onoliko puta koliko je potrebno dok se svi argumenti ne iscrpe.
U sljedećem primjeru broj argumenata koji se čitaju sa standardnog unosa ograničen je na 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
Kao što možete vidjeti iz višestrukog izlaznog dolje, naredba dodir izvršava se zasebno za svaki argument:
touch file1 touch file2 touch file3
Kako pokrenuti više naredbi
Za pokretanje više naredbi s
xargs
, koristite opciju
-I
. Djeluje definiranjem
replace-str
nakon opcije
-I
i sva pojavljivanja
replace-str
se zamjenjuju argumentom prosljeđenim u xargs.
Sljedeći primjer
xargs
izvest će dvije naredbe, najprije će datoteke stvoriti
touch
, a zatim će popisati datoteke naredbom
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
Uobičajeni izbor za
replace-str
je
%
. No možete koristiti i drugo rezervirano mjesto, na primjer,
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Kako odrediti razdjelnik
Upotrijebite opciju
-d
(
--delimiter
) za postavljanje prilagođenog razgraničenja, koji može biti bilo jedan znak ili niz bijega koji započinje s
\
.
Sljedeći primjer koristimo
;
kao delimiter:
echo "file1;file2;file3" | xargs -d ; -t touch
Kako čitati stavke iz datoteke
Naredba xargs također može čitati stavke iz datoteke umjesto standardnog unosa. Da biste to učinili, upotrijebite opciju
-a
(
--arg-file
) nakon koje slijedi naziv datoteke.
U sljedećem primjeru naredba
xargs
čitat će
ips.txt
datoteku i ping svaku IP adresu.
8.8.8.8 1.1.1.1
Koristimo i opciju
-L 1
koja upućuje
xargs
da čitaju jedan redak istovremeno. Ako se isključi ova opcija,
xargs
će proslijediti sve IP adrese jednoj
ping
naredbi.
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
Korištenje
xargs
sa
xargs
xargs
se najčešće koristi u kombinaciji s naredbom
find
. Možete koristiti
find
za pretraživanje određenih datoteka, a zatim
xargs
za izvođenje operacija na tim datotekama.
Da biste izbjegli probleme s imenima datoteka koja sadrže nove linije ili druge posebne znakove, uvijek upotrijebite opciju find
-print0
, koja uzrokuje da ispisuje cijelo ime datoteke, a zatim nulti znak.
--null
može ispravno protumačiti ovaj izlaz pomoću opcije
-0
, (
--null
).
U sljedećem primjeru
find
će ispisati puna imena svih datoteka unutar
/var/www/.cache
direktorija i
xargs
će staze datoteka proslijediti naredbi
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Korištenje xargs-a za urezivanje znakova bijelog prostora
xargs
se također može koristiti kao alat za uklanjanje razmaka s obje strane datog niza. Jednostavno
xargs
niz naredbi
xargs
i ona će izvršiti obrezivanje:
echo " Long line " | xargs
Long line
Ovo može biti korisno kada uspoređujete nizove u skriptama školjke.
#!/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.
Zaključak
xargs
je uslužni program naredbenog retka na Linuxu koji vam omogućuje izgradnju i izvršavanje naredbi.
Za detaljnije informacije o svakoj opciji
xargs
pročitajte stranicu xargs man.
Chmod naredba u Linuxu (dopuštenja datoteka)

U Linuxu pristup datotekama upravlja se putem dozvola, atributa i vlasništva datoteka. Ovaj je vodič opisao kako pomoću naredbe chmod mijenjati dozvole pristupa datotekama i mapama.
Chgrp naredba u linuxu (promjena grupa)

U Linuxu je svaka datoteka povezana s vlasnikom i skupinom te ima dopuštenja koja određuju koji korisnici mogu čitati, pisati ili izvršavati datoteku. Naredba chgrpc mijenja vlasništvo grupe nad datotekama.
Cp naredba u Linuxu (kopiranje datoteka)

cp je uslužni program za kopiranje datoteka i mapa u Unix i Linux sustavima.