.\" -*- coding: UTF-8 -*- .\" -*- nroff -*- .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH XARGS 1 .SH NUME xargs \- construiește și execută linii de comandă de la intrarea standard .SH REZUMAT \fBxargs\fP .nh [\fIopțiuni\fP] [\fIcomanda\fP [\fIargumente\-inițiale\fP]] .hy . .SH DESCRIERE Această pagină de manual documentează versiunea GNU a \fBxargs\fP. \fBxargs\fP 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ă \fIcomanda\fP (implicit \fIecho\fP) de una sau mai multe ori cu orice \fIargumente\-inițiale\fP urmate de elemente citite de la intrarea standard. Liniile goale de la intrarea standard sunt ignorate. .P Linia de comandă pentru \fIcomandă\fP este construită până când atinge o limită definită de sistem (cu excepția cazului în care se utilizează opțiunile \fB\-n\fP și \fB\-L\fP). \fIcomanda\fP 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 \fIcomenzii\fP 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 \fB\-P\fP. .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 \fBxargs\fP. În aceste situații, este mai bine să se utilizeze opțiunea \fB\-0\fP, 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 \fBxargs\fP utilizează, de asemenea, un caracter nul ca separator. Dacă acest program este GNU \fBfind\fP, de exemplu, opțiunea \fB\-print0\fP face acest lucru pentru dumneavoastră. .P Dacă orice invocare a comenzii iese cu starea 255, \fBxargs\fP 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. . .SH OPȚIUNI .TP \fB\-0, \-\-null\fP 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. .TP \fB\-a \fP\fIfișier\fP\fB, \-\-arg\-file=\fP\fIfișier\fP Citește elemente din \fIfișier\fP î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 \fI/dev/null\fP. .TP \fB\-\-delimiter=\fP\fIdelimitator\fP\fB, \-d\fP\fI delimitator\fP 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 \fB\en\fP, sau un cod de eludare octal sau hexazecimal. Codurile de eludare octale și hexazecimale se înțeleg ca și în cazul comenzii \fBprintf\fP. 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 \fB\-d\fP 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 \fB\-\-null\fP atunci când acest lucru este posibil. .TP \fB\-E\fP\fI șir\-eof\fP Stabilește șirul de sfârșit de fișier la \fIșir\-eof\fP. Î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 \fB\-E\fP, nici \fB\-e\fP, nu se utilizează șirul de sfârșit de fișier. .TP \fB\-e\fP[\fIșir\-eof\fP], \fB\-\-eof\fP[\fI=șir\-eof\fP] Această opțiune este sinonimă cu opțiunea \fB\-E\fP. Utilizați \fB\-E\fP în schimb, deoarece este conformă cu POSIX, în timp ce această opțiune nu este. Dacă \fIșir\-eof\fP este omis, nu există un șir de sfârșit de fișier. Dacă nu se utilizează nici \fB\-E\fP, nici \fB\-e\fP, nu se utilizează șirul de sfârșit de fișier. .TP \fB\-I\fP\fI șir\-înlocuire\fP Înlocuiește aparițiile lui \fIșir\-înlocuire\fP î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ă \fB\-x\fP și \fB\-L\fP 1. .TP \fB\-i\fP[\fIșir\-înlocuire\fP], \fB\-\-replace\fP[\fI=șir\-înlocuire\fP] Această opțiune este un sinonim pentru \fB\-I\fP\fIșir\-înlocuire\fP dacă se specifică \fIșir\-înlocuire\fP. Dacă lipsește argumentul \fIșir\-înlocuire\fP, efectul este același ca și în cazul \fB\-I\fP{}. Această opțiune este depreciată; utilizați \fB\-I\fP în locul ei. .TP \fB\-L\fP\fI max\-linii\fP Utilizează cel mult \fImax\-linii\fP 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ă \fB\-x\fP. .TP \fB\-l\fP[\fImax\-linii\fP], \fB\-\-max\-lines\fP[=\fImax\-linii\fP] Sinonim pentru opțiunea \fB\-L\fP. Spre deosebire de \fB\-L\fP, argumentul \fImax\-linii\fP este opțional. Dacă \fImax\-linii\fP nu este specificat, valoarea implicită este 1. Opțiunea \fB\-l\fP este depreciată, deoarece standardul POSIX specifică în schimb \fB\-L\fP. .TP \fB\-n\fP\fI max\-arg\fP\fB, \fP\fB\-\-max\-args\fP=\fImax\-arg\fP Utilizează cel mult \fImax\-arg\fP argumente pe linie de comandă. Se vor utiliza mai puține argumente decât \fImax\-arg\fP dacă se depășește dimensiunea (a se vedea opțiunea \fB\-s\fP), cu excepția cazului în care se dă opțiunea \fB\-x\fP, caz în care se va ieși din \fBxargs.\fP. .TP \fB\-P\fP\fI max\-proc\fP, \fB\-\-max\-procs\fP=\fImax\-proc\fP Rulează până la \fImax\-proc\fP procese la un moment dat; valoarea implicită este 1. Dacă \fImax\-proc\fP este 0, \fBxargs\fP va rula cât mai multe procese posibile la un moment dat. Folosiți opțiunea \fB\-n\fP sau opțiunea \fB\-L\fP cu \fB\-P\fP; în caz contrar, există șanse să se execute doar o singură execuție. În timp ce \fBxargs\fP 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. \fBxargs\fP 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. \fBRețineți\fP 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). .TP \fB\-o, \-\-open\-tty\fP Redeschide intrarea standard ca \fI/dev/tty\fP în procesul copil înainte de a executa comanda. Acest lucru este util dacă doriți ca \fBxargs\fP să ruleze o aplicație interactivă. .TP \fB\-p, \-\-interactive\fP Î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ă \fB\-t\fP. .TP \fB\-\-process\-slot\-var\fP=\fInume\fP Stabilește variabila de mediu \fInume\fP 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. .TP \fB\-r, \-\-no\-run\-if\-empty\fP Î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. .TP \fB\-s\fP\fI max\-caractere\fP, \fB\-\-max\-chars\fP\fI=max\-caractere\fP Utilizează cel mult \fImax\-caractere\fP 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. \fBxargs\fP se adaptează automat la constrângeri mai stricte. .TP \fB\-\-show\-limits\fP Afișează limitele de lungime a liniei de comandă care sunt impuse de sistemul de operare, de dimensiunea memoriei tampon aleasă de \fBxargs\fP și de opțiunea \fB\-s\fP. Canalizați intrarea către \fI/dev/null\fP (și poate specificați \fB\-\-no\-run\-if\-empty\fP) dacă nu doriți ca \fBxargs\fP să facă ceva. .TP \fB\-t, \-\-verbose\fP Afișează linia de comandă la ieșirea de eroare standard înainte de a o executa. .TP \fB\-x, \-\-exit\fP Iese în cazul în care dimensiunea (a se vedea opțiunea \fB\-s\fP) este depășită. .TP \fB\-\-help\fP Afișează un rezumat al opțiunilor lui \fBxargs\fP și iese. .TP \fB\-\-version\fP Afișează numărul versiunii \fBxargs\fP și iese. .PP Opțiunile \fB\-\-max\-lines\fP (\fB\-L\fP, \fB\-l\fP), \fB\-\-replace\fP (\fB\-I\fP, \fB\-i\fP) și \fB\-\-max\-args\fP (\fB\-n\fP) se exclud reciproc. Dacă unele dintre ele sunt specificate în același timp, atunci \fBxargs\fP 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, \fBxargs\fP va emite un diagnostic de avertizare la \fIieșirea de eroare standard\fP. Excepția de la această regulă este că valoarea specială \fImax\-arg\fP \fI1\fP („\fB\-n\fP\fI1\fP”) este ignorată după opțiunea \fB\-\-replace\fP și alias\-urile sale \fB\-I\fP și \fB\-i\fP, deoarece nu ar intra de fapt în conflict. . .SH EXEMPLE .nf \fBfind /tmp \-name core \-type f \-print | xargs /bin/rm \-f\fP .fi Găsește fișierele cu numele \fBcore\fP în sau sub directorul \fB/tmp\fP ș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. .P \fBfind /tmp \-name core \-type f \-print0 | xargs \-0 /bin/rm \-f\fP Găsește fișierele numite \fBcore\fP în sau sub directorul \fB/tmp\fP ș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. .P \fBfind /tmp \-depth \-name core \-type f \-delete\fP Găsește fișierele numite \fBcore\fP în sau sub directorul \fB/tmp\fP și le șterge, dar mai eficient decât în exemplul anterior (deoarece se evită necesitatea de a utiliza \fBfork\fP(2) și \fBexec\fP(2) pentru a lansa \fBrm\fP și nu avem nevoie de procesul suplimentar \fBxargs\fP). .P .nf \fBcut \-d: \-f1 < /etc/passwd | sort | xargs echo\fP .fi Generează o listă compactă a tuturor utilizatorilor din sistem. . .SH "STARE DE IEȘIRE" \fBxargs\fP iese cu următoarea stare: .RS .IP 0 dacă reușește .IP 123 dacă orice invocare a comenzii a ieșit cu starea 1\-125 .IP 124 dacă comanda a ieșit cu starea 255 .IP 125 dacă comanda este omorâtă de un semnal .IP 126 dacă comanda nu poate fi executată .IP 127 dacă comanda nu este găsită .IP 1 în cazul în care s\-a produs o altă eroare. .RE .P 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. . .SH "CONFORMAREA CU STANDARDELE" Începând cu versiunea 4.2.9 a GNU xargs, comportamentul implicit al \fBxargs\fP 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. .P 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”. .P Opțiunea „\-o” este o extensie a standardului POSIX pentru o mai bună compatibilitate cu BSD. .P Standardul POSIX permite implementărilor să aibă o limită privind dimensiunea argumentelor pentru funcțiile \fBexec\fP. 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 \fB\-\-show\-limits\fP poate fi utilizată pentru a descoperi limitele reale în vigoare pe sistemul actual. . .SH ERORI Nu este posibil ca \fBxargs\fP 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 \fBxargs\fP 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 \fBxargs\fP 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 \fB\-execdir\fP din \fBfind\fP poate fi adesea utilizată ca o alternativă mai sigură. Atunci când utilizați opțiunea \fB\-I\fP, 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 \fBxargs\fP o va accepta atunci când este utilizată cu opțiunea \fB\-I\fP. Pentru a ocoli această limitare, puteți utiliza opțiunea \fB\-s\fP pentru a mări spațiul de tampon pe care îl utilizează \fBxargs\fP și puteți utiliza, de asemenea, o invocare suplimentară a \fBxargs\fP pentru a vă asigura că nu apar linii foarte lungi. De exemplu: .P \fBvreo\-comandă | xargs \-s 50000 echo | xargs \-I '{}' \-s 100000 rm '{}'\fP .P Aici, prima invocare a \fBxargs\fP nu are o limită de lungime a liniei de intrare, deoarece nu utilizează opțiunea \fB\-i\fP. A doua invocare a \fBxargs\fP 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 \fB\-i\fP 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 \fBfind\fP(1), deoarece acesta emite doar un nume de fișier pe linie. . .SH "RAPORTAREA ERORILOR" Ajutor în internet pentru GNU findutils: . .br Raportați orice erori de traducere la: .PP Raportați orice altă problemă prin intermediul formularului de la sistemul de urmărire a erorilor al GNU Savannah: .RS .RE Subiectele generale despre pachetul GNU findutils sunt discutate pe lista de discuții \fIbug\-findutils\fP: .RS .RE . .SH "DREPTURI DE AUTOR" Drepturi de autor \(co 1990\-2022 Free Software Foundation, Inc. Licența GPLv3+: GNU GPL versiunea 3 sau ulterioară . .br 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. . .SH "CONSULTAȚI ȘI" \fBfind\fP(1), \fBkill\fP(1), \fBlocate\fP(1), \fBupdatedb\fP(1), \fBfork\fP(2), \fBexecvp\fP(3), \fBlocatedb\fP(5), \fBsignal\fP(7) .PP Documentația completă este disponibilă la . .br sau local prin intermediul comenzii: \fBinfo xargs\fP .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .