Pochopenie príkazu Linux: Ar

Program GNU ar vytvára , upravuje a extrahuje z archívov. Archív je jediný súbor obsahujúci súbor ďalších súborov v štruktúre, ktorá umožňuje načítať pôvodné jednotlivé súbory (tzv. Členovia archívu).

Prehľad

Obsahy pôvodného súboru, režim (povolenia), časová pečiatka, vlastník a skupina sa v archíve zachovali a môžu sa obnoviť pri extrakcii.

GNU ar môže udržiavať archívy, ktorých členovia majú mená každej dĺžky; v závislosti od toho, ako je na vašom systéme konfigurovaný ar, môže byť uložená maximálna dĺžka mena člena, aby sa dosiahla kompatibilita s formátmi archívu udržovanými s inými nástrojmi. Ak existuje, limit je často 15 znakov (typický pre formáty súvisiace s a.out) alebo 16 znakov (typické pre formáty súvisiace s balíčkom).

ar sa považuje za binárny nástroj, pretože archívy tohto druhu sú najčastejšie používané ako knižnice s bežne potrebnými podprogrammi.

ar vytvorí index pre symboly definované v premiestniteľných objektových moduloch v archíve, keď zadáte modifikátor s . Po vytvorení sa tento index v archíve aktualizuje vždy, keď sa vykoná zmena jeho obsahu (okrem operácie aktualizácie q ). Archív s takýmto indexom urýchľuje prepojenie s knižnicou a umožňuje, aby rutiny v knižnici vzájomne volali bez ohľadu na umiestnenie v archíve.

Pomocou nm -s alebo nm -print-armap môžete použiť túto indexovú tabuľku. Ak v archíve chýba tabuľka, môže sa použiť ďalšia forma nazývaná ranlib na pridanie iba tabuľky.

GNU ar je navrhnutý tak, aby bol kompatibilný s dvomi rôznymi zariadeniami. Jeho aktivitu môžete ovládať pomocou možností príkazového riadku, ako sú rôzne odrody ar v systémoch Unix ; alebo ak zadáte jednu voľbu príkazového riadku -M , môžete ju ovládať skriptom dodávaným cez štandardný vstup, napríklad program MRI `` librarian ''.

SYNOPSA

ar [ -X32_64 ] [ - ] p [ mod [ relos ] [ počet ]] archív [ člen ...]

MOŽNOSTI

GNU ar vám umožňuje kombinovať operačný kód p a modifikátor flags mod v ľubovoľnom poradí v rámci prvého argumentu príkazového riadku.

Ak chcete, môžete spustiť prvý príkaz príkazového riadku s pomlčkou.

P keyletter určuje, akú operáciu treba vykonať; môže to byť niektoré z nasledujúcich, ale musíte zadať iba jednu z nich:

d

Odstrániť moduly z archívu. Zadajte názvy modulov, ktoré sa majú vymazať ako členovia ...; archív je nedotknutý, ak zadáte žiadne súbory na vymazanie.

Ak určíte modifikátor v, zoznamy jednotlivých modulov budú vymazané.

m

Použite túto operáciu na presun členov do archívu.

Usporiadanie členov v archíve môže mať vplyv na to, ako sú programy prepojené pomocou knižnice, ak je symbol definovaný vo viac ako jednom členovi.

Ak nie sú použité modifikátory s parametrom "m", všetky členy, ktoré ste uviedli v argumentoch členov, sa presunú na koniec archívu. môžete použiť modifikátory a , b alebo i a presunúť ich na určené miesto.

p

Vytlačte zadaných členov archívu do štandardného výstupného súboru. Ak je modifikátor v zadaný, uveďte názov člena skôr, ako skopírujete jeho obsah na štandardný výstup.

Ak nezadáte žiadne argumenty pre členov , vytlačia sa všetky súbory v archíve.

q

Rýchlo pripojiť ; Historicky, pridajte člen súborov ... na koniec archívu , bez toho, aby ste si overili jeho výmenu.

Modifikátory a , b a i neovplyvňujú túto operáciu; noví členovia sú vždy umiestnení na konci archívu.

Modifikátor v uvádza zoznam každého súboru, ako je pripojený.

Keďže bodom tejto operácie je rýchlosť, index tabuľky symbolov archívu nie je aktualizovaný, hoci už existoval; môžete použiť explicitne alebo explicitne aktualizovať index tabuľky symbolov.

Avšak príliš veľa rôznych systémov predpokladá, že rýchlo sa pripojí k indexu, takže GNU implements "q" ako synonymum pre "r".

r

Vložte člen súboru ... do archívu (s náhradou ). Táto operácia sa líši od q v tom, že všetky predchádzajúce členy sa odstránia, ak sa ich názvy zhodujú s tým, ktoré sa pridajú.

Ak jeden zo súborov s názvom v členovi ... neexistuje, zobrazí sa chybové hlásenie a ponechá nerušene všetkých existujúcich členov archívu, ktorý zodpovedá tomuto názvu.

V predvolenom nastavení sa na konci súboru pridávajú noví členovia. ale môžete použiť jedno z modifikátorov a , b alebo i, aby ste požiadali o umiestnenie v porovnaní s niektorými existujúcimi členmi.

Modifikátor v používaný s touto operáciou vyvoláva riadok výstupu pre každý vložený súbor spolu s jedným z písmen a alebo r, ktorý označuje, či bol súbor pripojený (nie je starý člen vymazaný) alebo je nahradený.

T

Zobrazte tabuľku s obsahom archívu alebo obsahom súborov uvedených v členovi ..., ktoré sa nachádzajú v archíve. Normálne sa zobrazuje iba názov člena; Ak chcete zobraziť aj režimy (povolenia), časovú pečiatku, vlastníka, skupinu a veľkosť, môžete požiadať o zadanie modifikátora v.

Ak nezadáte člena , uvádzajú sa všetky súbory v archíve.

Ak je v archíve viacero súborov s rovnakým názvom (povedzme, alebo ) v archíve (napr. Ba ), zobrazí sa len prvý prípad; aby ste ich videli všetky, musíte požiadať o kompletný zoznam - v našom príklade, napríklad.

X

Výber členov (menovaný člen ) z archívu. Môžete použiť modifikátor v tejto operácii, aby ste požadovali, aby sa pri každom názve uvádzalo, ako to vyberie.

Ak neurčíte člena , všetky súbory v archíve sa extrahujú.

Niekoľko modifikátorov ( mod ) môže bezprostredne nasledovať p keyletter, aby špecifikoval variácie správania operácie:

Pridajte nové súbory po existujúcom členovi archívu. Ak používate modifikátor a , pred archívnou špecifikáciou musí existovať názov existujúceho archívneho člena ako argument relos .

b

Pridajte nové súbory pred existujúci člen archívu. Ak používate modifikátor b , pred archívnou špecifikáciou musí existovať názov existujúceho archívneho člena ako argument relos . (rovnaké ako i ).

C

Vytvorte archív. Zadaný archív sa vždy vytvorí, ak neexistuje, keď požiadate o aktualizáciu. Ale upozornenie sa vydáva, pokiaľ vopred nešpecifikujete, že ho chcete vytvoriť, pomocou tohto modifikátora.

F

Skráťte mená v archíve. GNU ar zvyčajne povolí názvy súborov ľubovoľnej dĺžky. Toto spôsobí, že v niektorých systémoch vytvorí archívy, ktoré nie sú kompatibilné s natívnym programom ar . Ak sa to týka, modifikátor f sa môže používať na skrátenie názvov súborov pri ich uložení do archívu.

ja

Vložte nové súbory pred existujúci člen archívu. Ak používate modifikátor i , pred archívnou špecifikáciou musí existovať názov existujúceho archívneho člena ako argument relos . (rovnako ako b ).

l

Tento modifikátor je akceptovaný, ale nepoužíva sa.

N

Používa parameter počtu . Toto sa používa, ak je v archíve viacero položiek s rovnakým názvom. Výpis alebo odstránenie počtu zobrazení daného mena z archívu.

o

Zachovajte pôvodné dátumy členov pri ich extrakcii. Ak tento modifikátor nešpecifikujete, súbory extrahované z archívu sú označené časom extrakcie.

P

Použite úplný názov cesty, keď sa zhodujú názvy v archíve. GNU ar nemôže vytvoriť archív s úplným názvom cesty (takéto archívy nie sú POSIXovou sťažnosťou), ale ostatní tvorcovia archívu môžu. Táto možnosť spôsobí, že názvy súborov sa zhodujú s názvom súborov GNU pomocou úplného názvu cesty, čo môže byť výhodné pri extrakcii jedného súboru z archívu vytvoreného iným nástrojom.

s

Napíšte indexový súbor objektov do archívu alebo aktualizujte existujúci, aj keď v archíve nie je vykonaná žiadna iná zmena. Tento príznak modifikátora môžete použiť buď s akoukoľvek operáciou alebo samostatne. Beh na archíve je ekvivalentom spustenia.

S

Nevytvárajte tabuľku symbolov archívov. To môže urýchliť budovanie veľkej knižnice v niekoľkých krokoch. Výsledný archív nemôže byť použitý s linkerom. Ak chcete vytvoriť tabuľku symbolov, musíte vynechať modifikátor S na poslednom vykonaní ar , alebo musíte v archíve spustiť ranlib .

u

Normálne, ar r ... vloží všetky súbory uvedené do archívu. Ak chcete vložiť iba tie súbory, ktoré ste vymenovali, ktoré sú novšie ako existujúce členovia s rovnakými názvami, použite tento modifikátor. Modifikátor u je povolený len pre operáciu r (nahradenie). Konkrétne kombinácia qu nie je povolená, pretože kontrola časových značiek stratí akúkoľvek rýchlostnú výhodu z operácie q .

proti

Tento modifikátor vyžaduje podrobnú verziu operácie. Mnohé operácie zobrazujú ďalšie informácie , napríklad názvy súborov spracované, keď je pripojený modifikátor v .

V

Tento modifikátor zobrazuje číslo verzie ar .

ar ignoruje počiatočnú voľbu napísanú -X32_64 , pre kompatibilitu s AIX. Chovanie spôsobené touto možnosťou je predvolené pre GNU ar . ar nepodporuje žiadnu z ďalších možností -X ; predovšetkým nepodporuje -X32, čo je predvolené pre AIX ar .

Dôležité: Pomocou príkazu man ( % man ) môžete zistiť, ako sa príkaz používa vo vašom konkrétnom počítači.