Provided by: manpages-ro_4.28.0-2_all 

NUME
ar - creează, modifică și extrage din arhive
SINOPSIS
ar [-X32_64] [-]p[modificator] [--plugin nume] [--target nume-bfd] [--output nume-director]
[--record-libdeps dependențe-bibliotecă] [--thin] [relpos] [număr] arhivă [membru...]
DESCRIERE
Programul GNU ar creează, modifică și extrage din arhive. O arhivă este un singur fișier care conține o
colecție de alte fișiere într-o structură care face posibilă recuperarea fișierelor individuale originale
(numite membri ai arhivei).
Conținutul, modul (permisiunile), data și ora, proprietarul și grupul fișierelor originale sunt păstrate
în arhivă și pot fi restaurate la extragere.
GNU ar poate menține arhive ale căror membri au nume de orice lungime; cu toate acestea, în funcție de
modul în care ar este configurat pe sistemul dumneavoastră, se poate impune o limită a lungimii numelor
membrilor pentru compatibilitatea cu formatele de arhivă menținute cu alte instrumente. Dacă există,
limita este adesea de 15 caractere (tipic pentru formatele legate de a.out) sau de 16 caractere (tipic
pentru formatele legate de coff).
ar este considerat un utilitar binar deoarece arhivele de acest tip sunt cel mai adesea folosite ca
biblioteci care conțin subrutine necesare în mod obișnuit. Deoarece bibliotecile vor depinde adesea de
alte biblioteci, ar poate înregistra, de asemenea, dependențele unei biblioteci atunci când este
specificată opțiunea --record-libdeps.
ar creează un index al simbolurilor definite în modulele de obiecte realocabile din arhivă atunci când se
specifică modificatorul s. Odată creat, acest index este actualizat în arhivă ori de câte ori ar modifică
conținutul acesteia (cu excepția operației de actualizare q). O arhivă cu un astfel de index accelerează
crearea de legături către bibliotecă și permite rutinelor din bibliotecă să se apeleze între ele fără a
ține cont de plasarea lor în arhivă.
Puteți utiliza nm -s sau nm --print-armap pentru a lista acest tabel de indici. În cazul în care o arhivă
nu are acest tabel, se poate utiliza o altă formă de ar numită ranlib pentru a adăuga doar tabelul.
GNU ar poate crea opțional o arhivă subțire „thin”, care conține un index de simboluri și referințe la
copiile originale ale fișierelor membre ale arhivei. Acest lucru este util pentru crearea de biblioteci
pentru a fi utilizate în cadrul unui arbore de construcție local, în cazul în care se așteaptă ca
obiectele realocabile să rămână disponibile, iar copierea conținutului fiecărui obiect nu ar face decât
să irosească timp și spațiu.
O arhivă poate fi subțire sau poate fi normală. Nu poate fi ambele în același timp. Odată creată o
arhivă, formatul acesteia nu poate fi modificat fără a o șterge mai întâi și a crea apoi o nouă arhivă în
locul ei.
Arhivele subțiri sunt, de asemenea, compactate, astfel încât adăugarea unei arhive subțiri la o altă
arhivă subțire nu o anidează, așa cum s-ar întâmpla în cazul unei arhive normale. În schimb, elementele
primei arhive sunt adăugate individual în cea de-a doua arhivă.
Rutele către elementele arhivei sunt stocate în raport cu arhiva însăși.
GNU ar este conceput pentru a fi compatibil cu două facilități diferite. Îi puteți controla activitatea
cu ajutorul opțiunilor din linia de comandă, precum diferitele varietăți de ar de pe sistemele Unix; sau,
dacă specificați opțiunea unică -M din linia de comandă, îl puteți controla cu ajutorul unui script
furnizat prin intrarea standard, precum programul «librarian» al MRI.
OPȚIUNI
GNU ar vă permite să amestecați codul de operație p și fanioanele modificatoare mod în orice ordine, în
cadrul primului argument din linia de comandă.
Dacă doriți, puteți începe primul argument al liniei de comandă cu o liniuță.
Litera cheie p specifică ce operație trebuie executată; poate fi oricare dintre următoarele, dar trebuie
să specificați numai una dintre ele:
d Șterge module din arhivă. Specificați numele modulelor care urmează să fie șterse sub forma
membru...; arhiva rămâne neatinsă dacă nu specificați niciun fișier de șters.
Dacă specificați modificatorul v, ar enumeră fiecare modul pe măsură ce este șters.
m Utilizați această operație pentru a muta membri într-o arhivă.
Ordinea membrilor într-o arhivă poate face o diferență în modul în care programele sunt legate
folosind biblioteca, dacă un simbol este definit în mai mult de un membru.
Dacă nu se utilizează modificatori cu „m”, toți membrii pe care îi numiți în argumentele membru sunt
mutați la sfârșitul arhivei; puteți utiliza modificatorii a, b sau i pentru a-i muta într-un loc
specificat.
p Imprimă membrii specificați ai arhivei, în fișierul de ieșire standard. Dacă este specificat
modificatorul v, afișează numele membrului înainte de a copia conținutul acestuia la ieșirea
standard.
Dacă nu specificați niciun argument membru, se imprimă toate fișierele din arhivă.
q Adăugare rapidă; Din punct de vedere istoric, adaugă fișierele membru... la sfârșitul arhivei, fără a
verifica dacă sunt înlocuite.
Modificatorii a, b și i nu afectează această operație; noii membri sunt întotdeauna plasați la
sfârșitul arhivei.
Modificatorul v face ca ar să listeze fiecare fișier pe măsură ce este adăugat.
Deoarece scopul acestei operații este viteza, implementările lui ar au opțiunea de a nu actualiza
tabelul de simboluri al arhivei, dacă există unul. Cu toate acestea, prea multe sisteme diferite
presupun că tabelele de simboluri sunt întotdeauna actualizate, astfel încât GNU ar va reconstrui
tabelul chiar și în cazul unei adăugări rapide.
Notă - GNU ar tratează comanda qs ca pe un sinonim pentru r - înlocuind fișierele deja existente în
arhivă și adăugând altele noi la sfârșit.
r Inserează fișierele membru... în arhivă (cu înlocuire). Această operație diferă de q prin faptul că
toți membrii existenți anterior sunt șterși dacă numele lor se potrivesc cu cei care sunt adăugați.
În cazul în care unul dintre fișierele numite în membru... nu există, ar afișează un mesaj de eroare
și lasă neschimbate toate fișierele existente din arhivă care corespund acelui nume.
În mod implicit, membrii noi sunt adăugați la sfârșitul fișierului, dar puteți utiliza unul dintre
modificatorii a, b sau i pentru a solicita plasarea în raport cu un membru existent.
Modificatorul v utilizat cu această operație generează o linie de ieșire pentru fiecare fișier
inserat, împreună cu una dintre literele a sau r pentru a indica dacă fișierul a fost adăugat (nu a
fost șters niciun membru vechi) sau înlocuit.
s Adaugă un index la arhivă sau îl actualizează dacă există deja. Rețineți că această comandă este o
excepție de la regula conform căreia nu poate exista decât o singură literă de comandă, deoarece este
posibil să o utilizați atât ca o comandă, cât și ca un modificator. În ambele cazuri, aceasta face
același lucru.
t Afișează un tabel care listează conținutul arhivei sau al fișierelor listate în membru... care sunt
prezente în arhivă. În mod normal, se afișează numai numele membrului, dar dacă se specifică
modificatorul O, se afișează și poziția corespunzătoare a membrului. În cele din urmă, pentru a
vedea modurile (permisiuni), data și ora, proprietarul, grupul și dimensiunea, trebuie inclus
modificatorul v.
Dacă nu specificați niciun argument membru, sunt listate toate fișierele din arhivă.
Dacă există mai multe fișiere cu același nume (să zicem, fig) într-o arhivă (să zicem b.a), ar t b.a
fig listează numai prima instanță; pentru a le vedea pe toate, trebuie să cereți o listă completă -
în exemplul nostru, ar t b.a.
x Extrage membri (membrii numiți) din arhivă. Puteți utiliza modificatorul v cu această operație,
pentru a solicita ca ar să listeze fiecare nume pe măsură ce îl extrage.
Dacă nu specificați un membru, toate fișierele din arhivă sunt extrase.
Fișierele nu pot fi extrase dintr-o arhivă subțire și există restricții privind extragerea din
arhivele create cu P: Rutele nu trebuie să fie absolute, nu pot conține „..”, iar orice subdirectoare
din rute trebuie să existe. Dacă se dorește evitarea acestor restricții, atunci se utilizează
opțiunea --output pentru a specifica un director de ieșire.
O serie de modificatori (mod) pot urma imediat după litera cheie p, pentru a specifica variații ale
comportamentului unei operații:
a Adaugă fișiere noi după un membru existent al arhivei. Dacă utilizați modificatorul a, numele unui
membru existent al arhivei trebuie să fie prezent ca argument relpos, înainte de specificația arhivă.
b Adaugă fișiere noi înainte de un membru existent al arhivei. Dacă utilizați modificatorul b, numele
unui membru existent al arhivei trebuie să fie prezent ca argument relpos, înainte de specificația
arhivă (la fel ca i).
c Creează arhiva. Arhiva arhivă specificată este întotdeauna creată dacă nu exista, atunci când
solicitați o actualizare. Dar se emite un avertisment dacă nu specificați în prealabil că vă
așteptați să o creați, prin utilizarea acestui modificator.
D Funcționează în modul determinist. La adăugarea fișierelor și a indexului arhivei, se utilizează zero
pentru UID-uri, GID-uri, marcaje de timp și se utilizează moduri de fișier coerente pentru toate
fișierele. Atunci când se utilizează această opțiune, dacă se utilizează ar cu opțiuni identice și
fișiere de intrare identice, execuțiile multiple vor crea fișiere de ieșire identice, indiferent de
proprietarii, grupurile, modurile de fișier sau orele de modificare ale fișierelor de intrare.
Dacă binutils a fost configurat cu --enable-deterministic-archives, atunci acest mod este activat în
mod implicit. Acesta poate fi dezactivat cu modificatorul U, de mai jos.
f Trunchiază numele din arhivă. În mod normal, GNU ar permite nume de fișiere de orice lungime. Acest
lucru îl va determina să creeze arhive care nu sunt compatibile cu programul nativ ar pe unele
sisteme. În cazul în care acest lucru reprezintă o problemă, modificatorul f poate fi utilizat pentru
a trunchia numele fișierelor atunci când le introduce în arhivă.
i Inserează fișiere noi înainte de un membru existent al arhivei. Dacă utilizați modificatorul i,
numele unui membru existent al arhivei trebuie să fie prezent ca argument relpos, înainte de
specificația arhivă (la fel ca b).
l Specifică dependențele acestei biblioteci. Dependențele trebuie să urmeze imediat acest caracter de
opțiune, trebuie să utilizeze aceeași sintaxă ca linia de comandă a editorului de legături și trebuie
să fie specificate într-un singur argument. Adică, dacă sunt necesare mai multe elemente, acestea
trebuie să fie puse între ghilimele pentru a forma un singur argument de linie de comandă. De exemplu
l "-L/usr/local/lib -lmydep1 -lmydep2"
N Utilizează parametrul număr. Acesta este utilizat în cazul în care există mai multe intrări în arhivă
cu același nume. Extrage sau șterge din arhivă instanța număr ale numelui dat.
o Păstrează datele originale ale membrilor la extragerea acestora. Dacă nu specificați acest
modificator, fișierele extrase din arhivă sunt inscripționate cu ora de extracție.
O Afișează pozițiile membrilor în interiorul arhivei. Se utilizează împreună cu opțiunea t.
P Utilizează numele complet al rutei atunci când se potrivesc sau se stochează nume în arhivă. Arhivele
create cu nume de rute complete nu sunt conforme cu POSIX și, prin urmare, este posibil să nu
funcționeze cu alte instrumente decât cele GNU actualizate. Modificarea unor astfel de arhive cu GNU
ar fără a utiliza P va elimina numele complete ale rutelor, cu excepția cazului în care arhiva este o
arhivă subțire. Rețineți că P poate fi util atunci când adăugați fișiere într-o arhivă subțire,
deoarece r fără P ignoră ruta atunci când alege ce element să înlocuiască. Astfel,
ar rcST arhiva.a subdir/fișier1 subdir/fișier2 fișier1
va avea ca rezultat înlocuirea primului „subdir/fișier1” cu „filșier1” din directorul curent.
Adăugarea lui P va împiedica această înlocuire.
s Scrie un index de fișier obiect în arhivă sau actualizează un index existent, chiar dacă arhiva nu
suferă nicio altă modificare. Puteți utiliza acest indicator de modificare fie cu orice operație, fie
singur. Rularea ar s pe o arhivă este echivalentă cu rularea ranlib pe aceasta.
S Nu generează un tabel de simboluri de arhivă. Acest lucru poate accelera construirea unei biblioteci
mari în mai multe etape. Arhiva rezultată nu poate fi utilizată cu editorul de legături. Pentru a
construi un tabel de simboluri, trebuie să omiteți modificatorul S la ultima execuție a ar sau
trebuie să executați ranlib pe arhivă.
T Alias depreciat pentru --thin. T nu este recomandat deoarece în multe implementări de «ar» T are o
semnificație diferită, așa cum este specificat de X/Open System Interface.
u În mod normal, ar r.... inserează toate fișierele listate în arhivă. Dacă doriți să inserați doar
acele fișiere din lista pe care o listați care sunt mai noi decât membrii existenți cu aceleași nume,
utilizați acest modificator. Modificatorul u este permis numai pentru operația r (reamplasare). În
special, combinația qu nu este permisă, deoarece verificarea marcajelor de timp ar pierde orice
avantaj de viteză din operația q.
Notă - în cazul în care o arhivă a fost creată într-o manieră deterministă, de exemplu prin
utilizarea modificatorului D, atunci înlocuirea va avea loc întotdeauna, iar modificatorul u va fi
ineficient.
U Nu funcționează în modul determinist. Acesta este inversul modificatorului D, de mai sus: fișierele
adăugate și indexul arhivei vor primi valorile lor reale UID, GID, marca temporală și valorile
modului de fișier.
Aceasta este valoarea implicită, cu excepția cazului în care binutils a fost configurat cu
--enable-deterministic-archives.
v Acest modificator solicită versiunea detaliere a unei operații. Multe operații afișează informații
suplimentare, cum ar fi numele fișierelor procesate, atunci când se adaugă modificatorul v.
V Acest modificator arată numărul de versiune al ar.
Programul ar acceptă, de asemenea, unele opțiuni din linia de comandă care nu sunt nici modificatori,
nici acțiuni, dar care îi modifică comportamentul în anumite moduri:
--help
Afișează lista opțiunilor liniei de comandă acceptate de ar și apoi iese.
--version
Afișează informațiile despre versiunea lui ar și apoi iese.
-X32_64
ar ignoră o opțiune inițială ortografiată -X32_64, pentru compatibilitate cu AIX. Comportamentul
produs de această opțiune este cel implicit pentru GNU ar. ar nu acceptă niciuna dintre celelalte
opțiuni -X; în special, nu acceptă -X32, care este valoarea implicită pentru AIX ar.
--plugin nume
Opțiunea opțională din linia de comandă --plugin nume face ca ar să încarce modulul numit nume, care
adaugă suport pentru mai multe formate de fișiere, inclusiv fișiere obiect cu informații de
optimizare a timpului de legătură.
Această opțiune este disponibilă numai în cazul în care lanțul de instrumente a fost construit cu
suportul pentru module activat.
Dacă --plugin nu este furnizată, dar suportul pentru module a fost activat, atunci ar parcurge
fișierele din ${libdir}/bfd-plugins în ordine alfabetică și se utilizează primul modul care revendică
obiectul în cauză.
Vă rugăm să rețineți că acest director de căutare de module nu este cel folosit de opțiunea -plugin a
ld. Pentru ca ar să utilizeze modulul editorului de legături, acesta trebuie copiat în directorul
${libdir}/bfd-plugins. Pentru compilațiile bazate pe GCC, modulul editorului de legături se numește
liblto_plugin.so.0.0.0.0. Pentru compilațiile bazate pe Clang, acesta se numește LLVMgold.so. Modulul
GCC este întotdeauna compatibil cu versiunile anterioare, astfel încât este suficient să se copieze
doar cel mai nou.
--target ținta
Opțiunea opțională din linia de comandă --target nume-bfd specifică faptul că membrii arhivei sunt
într-un format de cod obiect diferit de formatul implicit al sistemului dumneavoastră. A se vedea
--output nume-director
Opțiunea --output poate fi utilizată pentru a specifica o rută către un director în care să fie
extrași membrii arhivei. Dacă această opțiune nu este specificată, se va utiliza directorul curent.
Notă - deși prezența acestei opțiuni implică o operație de extracție x, opțiunea trebuie totuși
inclusă în linia de comandă.
--record-libdeps dependențe-bibliotecă
Opțiunea --record-libdeps este identică modificatorului l, doar că este tratată în forma lungă.
--thin
Transformă arhiva specificată într-o arhivă subțire. Dacă există deja și este o arhivă obișnuită,
membrii existenți trebuie să fie prezenți în același director ca arhiva.
@fișier
Citește opțiunile liniei de comandă din fișier. Opțiunile citite sunt inserate în locul opțiunii
originale @fișier. Dacă fișier nu există sau nu poate fi citit, atunci opțiunea va fi tratată literal
și nu va fi eliminată.
Opțiunile din fișier sunt separate prin spații albe. Un caracter de spațiere poate fi inclus într-o
opțiune prin includerea întregii opțiuni între ghilimele simple sau duble. Orice caracter (inclusiv o
bară oblică inversă) poate fi inclus prin prefixarea caracterului care urmează să fie inclus cu o
bară oblică inversă. fișier poate conține la rândul său opțiuni @fișier suplimentare; orice astfel de
opțiuni vor fi procesate în mod recursiv.
CONSULTAȚI ȘI
nm(1), ranlib(1), and the Info entries for binutils.
DREPTURI DE AUTOR
Drepturi de autor © 1991-2025 Free Software Foundation, Inc.
Se acordă permisiunea de a copia, distribui și/sau modifica acest document în conformitate cu termenii
Licenței GNU Free Documentation, versiunea 1.3 sau orice versiune ulterioară publicată de Free Software
Foundation; fără secțiuni invariante, fără texte de copertă și fără texte de contra copertă. O copie a
licenței este inclusă în secțiunea intitulată „GNU Free Documentation License”.
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.
binutils-2.45 28 august 2025 AR(1)