Provided by: manpages-ro_4.27.0-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{}.  Opțiunea  -i  este
              depreciată; utilizați opțiunea -I în locul acesteia.

       -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-args, --max-args=max-args
              Utilizează  cel  mult  max-args argumente pe linie de comandă. Se vor utiliza mai puține argumente
              decât max-args 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-procs, --max-procs=max-procs
              Rulează până la max-procs procese la un moment dat; valoarea implicită este 1. Dacă max-procs 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.

              Dacă nu utilizați opțiunea -P, xargs nu va gestiona semnalele SIGUSR1 și SIGUSR2, ceea ce înseamnă
              că  acestea vor încheia programul (cu excepția cazului în care au fost blocate în procesul părinte
              înainte ca xargs să fie inițiat).

              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ă.

       --     Delimitează lista de opțiuni. Argumentele ulterioare, dacă există, sunt tratate ca operanzi  chiar
              dacă  încep  cu  -.  De exemplu, xargs -- --help execută comanda --help (găsită în PATH) în loc să
              afișeze textul de utilizare, iar xargs -- --comanda_mea execută comanda --comanda_mea  în  loc  să
              respingă aceasta ca opțiune nerecunoscută.

       --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.

       În  versiunile  de  xargs  până  la versiunea 4.9.0 inclusiv, SIGUSR1 și SIGUSR2 nu ar determina xargs să
       termine chiar dacă opțiunea -P nu a fost utilizată.

ISTORIC

       Programul xargs a fost inventat  de  Herb  Gellis  la  Bell  Labs.  Consultați  manualul  Texinfo  pentru
       «findutils», Finding Files, pentru mai multe informații.

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.

       În versiunile de xargs până la versiunea 4.9.0 inclusiv, xargs -P ieșea în timp ce unii dintre copiii săi
       erau încă în execuție, dacă unul dintre aceștia ieșea cu starea 255.

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-2024 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)