Provided by: manpages-ro_4.23.1-1_all bug

NUME

       xargs - construiește și execută linii de comandă de la intrarea standard

SINOPSIS

       xargs [opțiuni] [comanda [argumente-inițiale]]

DESCRIERE

       Această  pagină  de  manual  documentează  versiunea  GNU  a xargs. xargs citește elemente de la intrarea
       standard, delimitate de spații libere (care pot fi protejate cu ghilimele duble sau simple sau cu o  bară
       oblică  inversă)  sau  de linii noi, și execută comanda (implicit echo) de una sau mai multe ori cu orice
       argumente-inițiale urmate de elemente citite de la  intrarea  standard.  Liniile  goale  de  la  intrarea
       standard sunt ignorate.

       Linia de comandă pentru comandă este construită până când atinge o limită definită de sistem (cu excepția
       cazului  în  care  se utilizează opțiunile -n și -L). comanda specificată va fi invocată de câte ori este
       necesar pentru a epuiza lista de elemente de intrare. În general, vor exista mult mai puține invocări ale
       comenzii decât numărul elementelor de intrare. În mod normal, acest lucru va avea beneficii semnificative
       în materie de performanță. Unele comenzi pot fi executate în paralel; a se vedea opțiunea -P.

       Deoarece numele de fișiere Unix pot conține spații libere și linii noi, acest comportament implicit  este
       adesea  problematic; numele de fișiere care conțin spații libere și/sau linii noi sunt procesate incorect
       de xargs. În aceste situații, este mai bine să se utilizeze opțiunea -0, care previne astfel de probleme.
       Atunci când utilizați această opțiune, va trebui să vă asigurați că  programul  care  produce  datele  de
       intrare  pentru  xargs utilizează, de asemenea, un caracter nul ca separator. Dacă acest program este GNU
       find, de exemplu, opțiunea -print0 face acest lucru pentru dumneavoastră.

       Dacă orice invocare a comenzii iese cu starea 255, xargs se va opri imediat fără  a  citi  alte  date  de
       intrare. Un mesaj de eroare este emis la ieșirea de eroare standard atunci când se întâmplă acest lucru.

OPȚIUNI

       -0, --null
              Elementele  de intrare se termină cu un caracter nul în loc de spațiu alb, iar ghilimelele și bara
              inversă nu sunt speciale (fiecare caracter este luat literal). Dezactivează șirul  de  sfârșit  de
              fișier,  care  este  tratat  ca  orice  alt  argument. Utilă atunci când elementele de intrare pot
              conține spații albe, ghilimele sau bare oblice inverse.  Opțiunea GNU «find -print0» produce  date
              de intrare adecvate pentru acest mod.

       -a fișier, --arg-file=fișier
              Citește  elemente  din  fișier  în  loc  de  la intrarea standard. Dacă utilizați această opțiune,
              intrarea standard rămâne neschimbată atunci când se execută comenzile. În  caz  contrar,  intrarea
              standard este redirecționată către /dev/null.

       --delimiter=delimitator, -d delimitator
              Elementele  de  intrare  se termină cu caracterul specificat. Delimitatorul specificat poate fi un
              singur caracter, un caracter de eludare în stil C, cum ar fi \n, sau un cod de eludare  octal  sau
              hexazecimal. Codurile de eludare octale și hexazecimale se înțeleg ca și în cazul comenzii printf.
              Caracterele multi-octet nu sunt acceptate. La procesarea datelor de intrare, ghilimelele și barele
              oblice  inverse  nu  sunt  speciale;  fiecare  caracter  din  datele de intrare este luat literal.
              Opțiunea -d dezactivează orice șir de sfârșit de fișier, care este tratat ca orice  alt  argument.
              Puteți  utiliza  această  opțiune  atunci când datele de intrare constau doar în elemente separate
              prin linii noi, deși este aproape întotdeauna mai bine să vă proiectați programul pentru a utiliza
              --null atunci când acest lucru este posibil.

       -E șir-eof
              Stabilește șirul de sfârșit de fișier la șir-eof. În cazul în care  șirul  de  sfârșit  de  fișier
              apare  ca  linie de intrare, restul intrării este ignorat. Dacă nu se utilizează nici -E, nici -e,
              nu se utilizează șirul de sfârșit de fișier.

       -e[șir-eof], --eof[=șir-eof]
              Această opțiune este sinonimă cu opțiunea -E. Utilizați -E în schimb, deoarece  este  conformă  cu
              POSIX,  în timp ce această opțiune nu este. Dacă șir-eof este omis, nu există un șir de sfârșit de
              fișier. Dacă nu se utilizează nici -E, nici -e, nu se utilizează șirul de sfârșit de fișier.

       -I șir-înlocuire
              Înlocuiește aparițiile lui șir-înlocuire în argumentele inițiale cu nume  citite  de  la  intrarea
              standard. De asemenea, spațiile libere fără ghilimele nu termină elementele de intrare; în schimb,
              separatorul este caracterul de linie nouă. Implică -x și -L 1.

       -i[șir-înlocuire], --replace[=șir-înlocuire]
              Această  opțiune  este  un  sinonim  pentru  -Ișir-înlocuire dacă se specifică șir-înlocuire. Dacă
              lipsește argumentul șir-înlocuire, efectul este același ca și în cazul -I{}. Această opțiune  este
              depreciată; utilizați -I în locul ei.

       -L max-linii
              Utilizează  cel  mult  max-linii  linii de intrare fără spații libere pe fiecare linie de comandă.
              Liniile goale la sfârșit determină continuarea logică a unei linii de intrare pe următoarea  linie
              de intrare. Implică -x.

       -l[max-linii], --max-lines[=max-linii]
              Sinonim  pentru  opțiunea  -L.  Spre  deosebire  de  -L,  argumentul max-linii este opțional. Dacă
              max-linii nu este specificat, valoarea implicită este 1. Opțiunea  -l  este  depreciată,  deoarece
              standardul POSIX specifică în schimb -L.

       -n max-arg, --max-args=max-arg
              Utilizează  cel  mult  max-arg  argumente pe linie de comandă. Se vor utiliza mai puține argumente
              decât max-arg dacă se depășește dimensiunea (a se vedea opțiunea -s), cu excepția cazului în  care
              se dă opțiunea -x, caz în care se va ieși din xargs..

       -P max-proc, --max-procs=max-proc
              Rulează  până  la max-proc procese la un moment dat; valoarea implicită este 1. Dacă max-proc este
              0, xargs va rula cât mai multe procese posibile  la  un  moment  dat.  Folosiți  opțiunea  -n  sau
              opțiunea  -L cu -P; în caz contrar, există șanse să se execute doar o singură execuție. În timp ce
              xargs rulează, puteți trimite procesului său un semnal SIGUSR1 pentru a crește numărul de  comenzi
              care vor fi executate simultan sau un SIGUSR2 pentru a reduce numărul. Nu îl puteți crește peste o
              limită  definită  de  implementare (care este afișată cu --show-limits). Nu se poate scădea sub 1.
              xargs nu-și termină niciodată comenzile; atunci când i  se  cere  să  scadă  numărul  de  comenzi,
              așteaptă doar ca mai multe comenzi existente să se termine înainte de a începe o alta.

              Rețineți  că  este  de  competența  proceselor  apelate să gestioneze în mod corespunzător accesul
              paralel la resursele partajate. De exemplu, dacă mai multe  dintre  ele  încearcă  să  imprime  la
              ieșirea standard (stdout), ieșirile vor fi produse într-o ordine nedeterminată (și foarte probabil
              amestecate), cu excepția cazului în care procesele colaborează în vreun fel pentru a preveni acest
              lucru.  Folosirea  unei  scheme  de  blocare este o modalitate de a preveni astfel de probleme. În
              general, utilizarea unei scheme de blocare va contribui la asigurarea unei ieșiri corecte, dar  va
              reduce performanța. Dacă nu doriți să tolerați diferența de performanță, aranjați pur și simplu ca
              fiecare  proces  să  producă  un  fișier  de  ieșire  separat (sau să utilizeze în alt mod resurse
              separate).

       -o, --open-tty
              Redeschide intrarea standard ca /dev/tty în procesul copil înainte de  a  executa  comanda.  Acest
              lucru este util dacă doriți ca xargs să ruleze o aplicație interactivă.

       -p, --interactive
              Întreabă  utilizatorul dacă dorește să execute fiecare linie de comandă și să citească o linie din
              terminal. Execută linia de comandă numai dacă răspunsul începe cu „y” sau „Y”. Implică -t.

       --process-slot-var=nume
              Stabilește variabila de mediu nume la o valoare  unică  în  fiecare  proces  copil  care  rulează.
              Valorile  sunt refolosite odată ce procesele copil ies. Acest lucru poate fi utilizat, de exemplu,
              într-o schemă rudimentară de distribuție a sarcinii.

       -r, --no-run-if-empty
              În cazul în care intrarea standard nu conține niciun spațiu în alb, nu  execută  comanda.  În  mod
              normal, comanda este executată o singură dată, chiar dacă nu există nicio intrare. Această opțiune
              este o extensie GNU.

       -s max-caractere, --max-chars=max-caractere
              Utilizează  cel  mult max-caractere caractere pe linie de comandă, inclusiv comanda și argumentele
              inițiale, precum și caracterele nule de terminare de la capetele șirurilor de argumente.  Cea  mai
              mare valoare permisă depinde de sistem și este calculată ca fiind limita de lungime a argumentelor
              pentru  «exec»,  minus  dimensiunea  mediului  dumneavoastră,  minus  2048  de octeți de spațiu de
              manevră. Dacă această valoare este mai mare de 128KiB, se utilizează 128Kib ca valoare  implicită;
              în  caz  contrar,  valoarea  implicită  este  cea maximă. 1KiB reprezintă 1024 de octeți. xargs se
              adaptează automat la constrângeri mai stricte.

       --show-limits
              Afișează limitele de lungime a liniei de comandă care sunt  impuse  de  sistemul  de  operare,  de
              dimensiunea memoriei tampon aleasă de xargs și de opțiunea -s. Canalizați intrarea către /dev/null
              (și poate specificați --no-run-if-empty) dacă nu doriți ca xargs să facă ceva.

       -t, --verbose
              Afișează linia de comandă la ieșirea de eroare standard înainte de a o executa.

       -x, --exit
              Iese în cazul în care dimensiunea (a se vedea opțiunea -s) este depășită.

       --help Afișează un rezumat al opțiunilor lui xargs și iese.

       --version
              Afișează numărul versiunii xargs și iese.

       Opțiunile  --max-lines  (-L,  -l),  --replace  (-I, -i) și --max-args (-n) se exclud reciproc. Dacă unele
       dintre ele sunt specificate în același timp, atunci xargs va utiliza, în  general,  opțiunea  specificată
       ultima în linia de comandă, adică va restaura valoarea opțiunii incriminate (dată înainte) la valoarea sa
       implicită. În plus, xargs va emite un diagnostic de avertizare la ieșirea de eroare standard. Excepția de
       la  această  regulă  este că valoarea specială max-arg 1 („-n1”) este ignorată după opțiunea --replace și
       alias-urile sale -I și -i, deoarece nu ar intra de fapt în conflict.

EXEMPLE

       find /tmp -name core -type f -print | xargs /bin/rm -f

       Găsește fișierele cu numele core în sau sub directorul /tmp și le șterge.  Rețineți  că  acest  lucru  va
       funcționa incorect dacă există nume de fișiere care conțin linii noi sau spații.

       find /tmp -name core -type f -print0 | xargs -0 /bin/rm -f

       Găsește fișierele numite core în sau sub directorul /tmp și le șterge, procesând numele de fișiere astfel
       încât numele de fișiere sau directoare care conțin spații sau linii noi să fie tratate corect.

       find /tmp -depth -name core -type f -delete

       Găsește fișierele numite core în sau sub directorul /tmp și le șterge, dar mai eficient decât în exemplul
       anterior  (deoarece  se  evită  necesitatea  de a utiliza fork(2) și exec(2) pentru a lansa rm și nu avem
       nevoie de procesul suplimentar xargs).

       cut -d: -f1 < /etc/passwd | sort | xargs echo

       Generează o listă compactă a tuturor utilizatorilor din sistem.

STARE DE IEȘIRE

       xargs iese cu următoarea stare:

              0      dacă reușește

              123    dacă orice invocare a comenzii a ieșit cu starea 1-125

              124    dacă comanda a ieșit cu starea 255

              125    dacă comanda este omorâtă de un semnal

              126    dacă comanda nu poate fi executată

              127    dacă comanda nu este găsită

              1      în cazul în care s-a produs o altă eroare.

       Codurile de ieșire mai mari de 128 sunt utilizate de shell pentru a indica faptul că un program  a  murit
       din cauza unui semnal fatal.

CONFORMAREA CU STANDARDELE

       Începând  cu  versiunea  4.2.9  a GNU xargs, comportamentul implicit al xargs este de a nu avea un marcaj
       logic de sfârșit de fișier. POSIX (IEEE Std 1003.1, ediția 2004) permite acest lucru.

       Opțiunile „-l” și „-i” apar în versiunea din 1997 a standardului POSIX, dar nu apar în versiunea din 2004
       a standardului. Prin urmare, ar trebui să utilizați în schimb „-L” și, respectiv, „-I”.

       Opțiunea „-o” este o extensie a standardului POSIX pentru o mai bună compatibilitate cu BSD.

       Standardul POSIX permite implementărilor  să  aibă  o  limită  privind  dimensiunea  argumentelor  pentru
       funcțiile  exec. Această limită poate fi de până la 4096 octeți, inclusiv dimensiunea mediului. Pentru ca
       scripturile să fie portabile, acestea nu trebuie să se bazeze pe o valoare mai mare. Cu toate acestea, nu
       cunosc nicio implementare a cărei limită reală să fie atât  de  mică.  Opțiunea  --show-limits  poate  fi
       utilizată pentru a descoperi limitele reale în vigoare pe sistemul actual.

ERORI

       Nu este posibil ca xargs să fie utilizat în siguranță, deoarece va exista întotdeauna un interval de timp
       între producerea listei de fișiere de intrare și utilizarea lor în comenzile pe care xargs le emite. Dacă
       alți  utilizatori au acces la sistem, aceștia pot manipula sistemul de fișiere în timpul acestui interval
       de timp pentru a forța acțiunea comenzilor pe care xargs le execută să se aplice unor fișiere pe care  nu
       le-ați  intenționat.  Pentru  o  discuție  mai  detaliată  a  acestei  probleme  și a problemelor conexe,
       consultați capitolul „Security Considerations” din documentația findutils Texinfo. Opțiunea -execdir  din
       find poate fi adesea utilizată ca o alternativă mai sigură.

       Atunci  când  utilizați  opțiunea  -I,  fiecare  linie  citită  de la intrare este pusă în memoria tampon
       internă. Aceasta înseamnă că există o limită superioară a lungimii liniei de intrare pe care xargs  o  va
       accepta  atunci  când  este  utilizată  cu  opțiunea  -I. Pentru a ocoli această limitare, puteți utiliza
       opțiunea -s pentru a mări spațiul de tampon pe care îl utilizează xargs și puteți utiliza, de asemenea, o
       invocare suplimentară a xargs pentru a vă asigura că nu apar linii foarte lungi. De exemplu:

       vreo-comandă | xargs -s 50000 echo | xargs -I '{}' -s 100000 rm '{}'

       Aici, prima invocare a xargs nu are o limită de lungime a  liniei  de  intrare,  deoarece  nu  utilizează
       opțiunea  -i.  A  doua  invocare  a  xargs  are  o  astfel de limită, dar ne-am asigurat că nu întâlnește
       niciodată o linie mai lungă decât poate gestiona. Aceasta nu este o soluție ideală. În  schimb,  opțiunea
       -i  nu  ar  trebui  să  impună  o limită de lungime a liniei, motiv pentru care această discuție apare în
       secțiunea ERORI. Problema nu apare la ieșirea lui find(1), deoarece acesta emite doar un nume  de  fișier
       pe linie.

RAPORTAREA ERORILOR

       Ajutor în internet pentru GNU findutils: <https://www.gnu.org/software/findutils/#get-help>.
       Raportați orice erori de traducere la: <https://translationproject.org/team/ro.html>

       Raportați  orice altă problemă prin intermediul formularului de la sistemul de urmărire a erorilor al GNU
       Savannah:
              <https://savannah.gnu.org/bugs/?group=findutils>
       Subiectele generale despre pachetul GNU findutils sunt discutate pe lista de discuții bug-findutils:
              <https://lists.gnu.org/mailman/listinfo/bug-findutils>

DREPTURI DE AUTOR

       Drepturi de autor © 1990-2022 Free Software Foundation, Inc. Licența GPLv3+:  GNU  GPL  versiunea  3  sau
       ulterioară <https://gnu.org/licenses/gpl.html>.
       Acesta  este  software  liber:  sunteți  liber  să-l  modificați  și  să-l redistribuiți. Nu există NICIO
       GARANȚIE, în limitele prevăzute de lege.

CONSULTAȚI ȘI

       find(1), kill(1), locate(1), updatedb(1), fork(2), execvp(3), locatedb(5), signal(7)

       Documentația completă este disponibilă la <https://www.gnu.org/software/findutils/xargs>.
       sau local prin intermediul comenzii: info xargs

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

                                                                                                        XARGS(1)