Înțelegerea comenzii Linux: Ar

Programul GNU ar creează , modifică și extrage din arhive. O arhivă este un singur fișier care deține o colecție de alte fișiere dintr-o structură care permite recuperarea fișierelor individuale originale (numite membri ai arhivei).

Prezentare generală

Conținutul fișierului original, modul (permisiunile), marca de timp, proprietarul și grupul sunt păstrate în arhivă și pot fi restabilite la extragere.

GNU ar poate menține arhive ale căror membri au nume de orice lungime; totuși, în funcție de modul în care ar este configurat în sistemul dvs., poate fi impusă o limită a lungimii numelui de membru pentru compatibilitatea cu formatele de arhivă întreținute cu alte instrumente. Dacă există, limita este adesea de 15 caractere (tipice pentru formatele legate de a.out) sau 16 caractere (tipice formatelor legate de coff).

ar este considerat un utilitar binar, deoarece arhivele de acest tip sunt cele mai des folosite ca biblioteci care dețin subrutine de obicei necesare.

ar creează un index al simbolurilor definite în modulele de obiecte transferabile din arhivă atunci când specificați modificatorul s . Odată creat, acest index este actualizat în arhivă ori de câte ori modifică conținutul său (cu excepția operației de actualizare q ). O arhivă cu un astfel de index accelerează conectarea la bibliotecă și permite rutinelor din bibliotecă să se apeleze reciproc, fără a ține seama de plasarea lor în arhivă.

Puteți folosi nm -s sau nm -print-armap pentru a afișa acest tabel index. Dacă o arhivă nu are masa, o altă formă de ranlib poate fi folosită pentru a adăuga doar masa.

GNU ar este conceput pentru a fi compatibil cu două facilități diferite. Puteți controla activitatea prin opțiuni de linie de comandă, cum ar fi diferitele varietăți de ar în sistemele Unix ; sau, dacă specificați singura opțiune de linie de comandă -M , o puteți controla cu un script furnizat prin intrări standard, cum ar fi programul "bibliotecar" al RMN.

REZUMAT

ar [ -X32_64 ] [ - ] p [ mod [ relpos ] [ count ]] arhiva [ membru ...]

OPȚIUNI

GNU ar vă permite să amestecați codul de operare p și modifier flags 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 linie.

P keyletter-ul specifică ce operație trebuie executată; aceasta poate fi una dintre următoarele, dar trebuie să specificați doar una dintre ele:

d

Ștergeți modulele din arhivă. Specificați numele modulelor care vor fi șterse ca membri ...; arhiva este neatinsă dacă nu specificați niciun fișier pentru a fi șters.

Dacă specificați modifierul v , ar arăta fiecare modul în momentul în care acesta este șters.

m

Utilizați această operație pentru a muta membrii într-o arhivă.

Ordonarea membrilor într-o arhivă poate face diferența în modul în care programele sunt legate prin utilizarea bibliotecii, dacă un simbol este definit în mai mulți membri.

Dacă nu se utilizează modificatori cu "m", orice membri pe care îi numești în argumentele membrilor sunt mutați la sfârșitul arhivei; puteți utiliza modificatorii a , b sau i pentru a le muta într-un loc specificat.

p

Imprimați membrii specificați ai arhivei, la fișierul de ieșire standard. Dacă modifierul v este specificat, arătați numele membrului înainte de a copia conținutul său la ieșirea standard.

Dacă nu specificați argumente de membru , toate fișierele din arhivă sunt tipărite.

q

Adăugați rapid ; Din punct de vedere istoric, adăugați membrul fișierelor ... la sfârșitul arhivei , fără a verifica înlocuirea.

Modificatorii a , b și i nu afectează această operație; noi membri sunt întotdeauna plasați la sfârșitul arhivei.

Modificatorul v va afișa fiecare fișier așa cum este atașat.

Deoarece punctul acestei operații este viteza, indicele tabelului de simbol al arhivei nu este actualizat, chiar dacă a existat deja; puteți utiliza ars sau ranlib în mod explicit pentru a actualiza indicele tabelului de simboluri.

Cu toate acestea, prea multe sisteme diferite își asumă repede adăugarea indexului, astfel încât GNU ar pune în aplicare "q" ca sinonim pentru "r".

r

Introduceți membrul fișierelor ... î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 cele adăugate.

Dacă unul dintre fișierele numite în membrul ... nu există, ar afișa un mesaj de eroare și lasă neîntrerupte toți membrii existenți ai arhivei care se potrivesc acelui nume.

În mod implicit, noi membri sunt adăugați la sfârșitul fișierului; dar puteți utiliza unul dintre modificatori 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 introdus, împreună cu una dintre literele a sau r pentru a indica dacă fișierul a fost atașat (nu a fost șters un membru vechi) sau înlocuit.

T

Afișați un tabel care conține conținutul arhivelor sau al fișierelor listate în membrul ... care sunt prezente în arhivă. În mod normal, este afișat numai numele membrului; dacă doriți să vedeți și modurile (permisiunile), marcajul de timp, proprietarul, grupul și dimensiunea, puteți solicita acest lucru, specificând și modificatorul v .

Dacă nu specificați un membru , toate fișierele din arhivă sunt listate.

Dacă există mai mult de un fișier cu același nume (de exemplu, fie ) într-o arhivă (să zicem), ar fi afișat numai prima instanță; pentru a le vedea pe toate, trebuie să cereți o listă completă --- în exemplul nostru, ar t ba .

X

Extrageți membri (numit membru ) din arhivă. Puteți utiliza v modifierul cu această operație, pentru a solicita ca fiecare nume să fie extras din listă.

Dacă nu specificați un membru , toate fișierele din arhivă sunt extrase.

Un număr de modifieri ( mod ) pot urmări imediat pliantul pentru p , pentru a specifica variațiile comportamentului unei operații:

A

Adăugați fișiere noi după un membru existent al arhivei. Dacă utilizați modificatorul a , numele unui membru de arhivă existent trebuie să fie prezent ca argumentul relos , înainte de caietul de sarcini al arhivei .

b

Adăugați fișiere noi în fața unui membru existent al arhivei. Dacă utilizați modificatorul b , numele unui membru de arhivă existent trebuie să fie prezent ca argumentul relos , înainte de caietul de sarcini al arhivei . (la fel ca i ).

c

Creați arhiva. Arhiva specificată este întotdeauna creată dacă nu există, când solicitați o actualizare. Dar se emite un avertisment dacă nu specificați în prealabil că vă așteptați să îl creați, folosind acest modifier.

f

Trageți numele în arhivă. GNU ar permite în mod normal nume de fișiere de orice lungime. Acest lucru îi va determina să creeze arhive care nu sunt compatibile cu programul na nat la unele sisteme. Dacă aceasta este o preocupare, modificatorul f poate fi folosit pentru a trunchia numele fișierelor atunci când le puneți în arhivă.

eu

Inserați fișiere noi în fața unui membru existent al arhivei. Dacă utilizați modificatorul i , numele unui membru de arhivă existent trebuie să fie prezent ca argumentul relos , înainte de caietul de sarcini al arhivei . (la fel ca b ).

L

Acest modificator este acceptat, dar nu este utilizat.

N

Utilizează parametrul de numărare . Acesta este folosit dacă există mai multe intrări în arhivă cu același nume. Extrageți sau ștergeți numărul instanțelor din numele dat din arhivă.

o

Păstrați datele originale ale membrilor când le extrageți. Dacă nu specificați acest modifier, fișierele extrase din arhivă sunt ștampilate cu timpul de extragere.

P

Utilizați numele căii complete când se potrivesc numele în arhivă. GNU ar nu poate crea o arhivă cu un nume de cale completă (astfel de arhive nu sunt reclamații POSIX), dar și alți creatori de arhivă. Această opțiune va determina GNU ar să se potrivească cu nume de fișiere utilizând un nume de cale complet, care poate fi convenabil atunci când extrageți un singur fișier dintr-o arhivă creată de un alt instrument.

s

Scrieți un index de fișier-obiect în arhivă sau actualizați unul existent, chiar dacă nu se face nicio altă modificare a arhivei. Puteți utiliza acest flag modificator fie cu orice operație, fie singur. Rularea pe o arhivă este echivalentă cu rularea pe ea.

S

Nu generați o tabelă cu simboluri de arhivă. Acest lucru poate accelera construirea unei biblioteci mari în mai mulți pași. Arhiva rezultată nu poate fi utilizată împreună cu link-ul. Pentru a construi o tabelă de simboluri, trebuie să omiteți modificatorul S la ultima executare a ar , sau trebuie să executați ranlib pe arhivă.

u

În mod normal, ar r ... inserează toate fișierele listate în arhivă. Dacă doriți să inserați numai acele fișiere pe care le listați care sunt mai noi decât membrii existenți cu aceleași nume, utilizați acest modifier. Modificatorul u este permis numai pentru operațiunea r (înlocuire). În special, combinația qu nu este permisă, deoarece verificarea timbrelor ar pierde orice avantaj de viteză din operația q .

v

Acest modificator cere versiunea verbală a unei operații. Multe operațiuni afișează informații suplimentare , cum ar fi numele de fișiere procesate, atunci când modificatorul v este atașat.

V

Acest modificator arată numărul versiunii ar .

ar ignoră o opțiune inițială scrisă -X32_64 , pentru compatibilitatea cu AIX. Comportamentul produs de această opțiune este implicit pentru GNU ar . ar nu acceptă nici una dintre celelalte opțiuni -X ; în special, nu acceptă -X32 care este implicit pentru AIX ar .

Important: Utilizați comanda om ( % man ) pentru a vedea cum se utilizează o comandă pe computerul dvs. particular.