Linux команда xargs.
Cuprins:
- Cum se utilizează Linux
xargsCommand - Cum să vizualizați comanda și să promiteți utilizatorul
- Cum să limitezi numărul de argumente
- Cum se execută mai multe comenzi
- Cum se specifică un delimitator
- Cum să citiți elemente din fișier
- Folosind
xargscufind - Utilizarea xargs pentru a decupa caractere spațiu alb
- Concluzie
Utilitarul
xargs
vă permite să construiți și să executați comenzi de la intrarea standard. De obicei este utilizat în combinație cu alte comenzi prin conducte.
Cu
xargs
, puteți furniza o introducere standard ca argument pentru utilitățile din linia de comandă precum
mkdir
și
rm
.
În acest tutorial, vom acoperi elementele de bază ale utilizării comenzii
xargs
.
Cum se utilizează Linux
xargs
Command
xargs
citeste argumentele de la intrarea standard, separate prin spații necompletate sau linii noi și execută comanda specificată folosind intrarea ca argumente ale comenzii. Dacă nu este furnizată nicio comandă, implicit este
/bin/echo
.
Sintaxa pentru comanda
xargs
este următoarea:
xargs]
Cel mai de exemplu exemplu de utilizare a
xargs
ar fi să treceți mai multe șiruri separate cu spațiul alb, folosind o țeavă la
xargs
și să rulați o comandă care va folosi aceste șiruri ca argumente.
echo "file1 file2 file3" | xargs touch
În exemplul de mai sus, canalizăm intrarea standard pe
xargs
, iar comanda
touch
este rulată pentru fiecare argument, creând trei fișiere. Acest lucru este identic cu dacă ați alerga:
Cum să vizualizați comanda și să promiteți utilizatorul
Pentru a imprima comanda pe terminal înainte de a o executa, utilizați opțiunea
-t
(
--verbose
):
echo "file1 file2 file3" | xargs -t touch
touch file1 file2 file3
echo "file1 file2 file3" | xargs -p touch
Tastați
y
sau
Y
pentru a confirma și executa comanda:
touch file1 file2 file3 ?…y
Această opțiune este utilă atunci când executați comenzi distructive.
Cum să limitezi numărul de argumente
În mod implicit, numărul de argumente transmise comenzii este determinat de limita sistemului.
Opțiunea
-n
(
--max-args
) specifică numărul de argumente care trebuie transmise comenzii date.
xargs
rulează comanda specificată de câte ori este necesar, până la epuizarea tuturor argumentelor.
În exemplul următor, numărul de argumente citite din intrarea standard este limitat la 1.
echo "file1 file2 file3" | xargs -n 1 -t touch
După cum puteți vedea din ieșirea verbose de mai jos, comanda tactilă este executată separat pentru fiecare argument:
touch file1 touch file2 touch file3
Cum se execută mai multe comenzi
Pentru a rula mai multe comenzi cu
xargs
, utilizați opțiunea
-I
. Funcționează prin definirea unui
replace-str
după opțiunea
-I
și toate aparițiile de la
replace-str
sunt înlocuite cu argumentul transmis la xargs.
Următorul exemplu
xargs
va rula două comenzi, mai întâi va crea fișierele cu
touch
, apoi va lista fișierele cu comanda
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
O alegere comună pentru
replace-str
este
%
. Cu toate acestea, puteți utiliza un alt
ARGS
, de exemplu,
ARGS
:
echo "file1 file2 file3" | xargs -t -I ARGS sh -c '{ touch ARGS; ls -l ARGS; }'
Cum se specifică un delimitator
Utilizați opțiunea
-d
(
--delimiter
) pentru a seta un delimitator personalizat, care poate fi fie un singur personaj, fie o secvență de evacuare care începe cu
\
.
Următorul exemplu pe care îl utilizăm
;
ca delimitator:
echo "file1;file2;file3" | xargs -d ; -t touch
Cum să citiți elemente din fișier
Comanda xargs poate citi și elemente dintr-un fișier în loc de introducere standard. Pentru a face acest lucru, utilizați opțiunea
-a
(
--arg-file
) urmată de numele fișierului.
În următorul exemplu, comanda
xargs
va citi fișierul
ips.txt
și ping fiecare adresă IP.
8.8.8.8 1.1.1.1
Folosim de asemenea opțiunea
-L 1
, care instruiește
xargs
să citească o linie la acea dată. Dacă această opțiune este omisă,
xargs
va transmite toate IP-urile la o singură comandă
ping
.
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
Folosind
xargs
cu
find
xargs
este cel mai des utilizat în combinație cu comanda
find
. Puteți utiliza
find
pentru a căuta anumite fișiere și apoi folosi
xargs
pentru a efectua operațiuni pe acele fișiere.
Pentru a evita problemele cu nume de fișiere care conțin linii noi sau alte caractere speciale, utilizați întotdeauna opțiunea find
-print0
, care determină ca tipărirea numelui complet de fișier urmată de un caracter nul. Această ieșire poate fi interpretată corect de
xargs
folosind opțiunea
-0
, (
--null
).
În exemplul următor,
find
va imprima numele complete ale tuturor fișierelor din directorul
/var/www/.cache
, iar
xargs
vor transmite căile fișierului la comanda
rm
:
find /var/www/.cache -type f -print0 | xargs -0 rm -f
Utilizarea xargs pentru a decupa caractere spațiu alb
xargs
poate fi folosit și ca un instrument pentru a elimina spațiul alb de pe ambele părți ale unui șir dat. Pur și simplu țeava șirul la comanda
xargs
și va face tunderea:
echo " Long line " | xargs
Long line
Acest lucru poate fi util atunci când compară șiruri în scripturile shell.
#!/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.
Concluzie
xargs
este o utilitate pentru linia de comandă pe Linux care vă permite să construiți și să executați comenzi.
Pentru informații mai detaliate despre fiecare opțiune
xargs
, citiți pagina de mana xargs.
Utilizați linia de comandă cu comandă
Integrați linia de comandă, interfața grafică și o limbă puternică cu pachetul de instrumente Take Command. > Nu-ți place când vânezi un program pe care trebuie să-l faci, să-l găsești, și apoi să descoperi că face mai mult? Am găsit Command Command (100 $, încercare gratuită de 30 de zile) după ce am fost frustrat de linia de comandă necorespunzătoare din Windows. Am descoperit că mi-a dat ce vroiam și multe lucruri pe care nu știam că le-am vrut - dar acum cu siguranță o fac.
Comanda Chmod în linux (fișiere permisiuni)
În Linux, accesul la fișiere este gestionat prin permisiunile, atributele și proprietatea. Acest tutorial acoperă modul de utilizare a comenzii chmod pentru a modifica permisiunile de acces ale fișierelor și directoarelor.
Comanda Chgrp în linux (schimbare grup)
În Linux, fiecare fișier este asociat cu un proprietar și un grup și are permisiuni care determină utilizatorii care pot citi, scrie sau executa fișierul. Comanda chgrpc modifică proprietatea grupului de fișiere date.







