AR(1)

JMÉNO
ar - tvoří nové archívy (knihovny funkcí .a - pozn. překl.), mění jejich obsah a rozbaluje je na jednotlivé soubory

POUŽITÍ
ar [-X32_64] [-]p[mod [relpos] [počet]] archív [člen...]

POPIS
GNU program ar tvoří nové archívy, mění jejich obsah a rozbaluje je na jednotlivé soubory. Archív je jeden soubor, jenž obsahuje více jiných souborů ve struktuře, která umožňuje získat jednotlivé původní soubory (těm říkáme členové archívu).

Obsah původního souboru, jeho přístupová práva, časové příznaky, vlastník a skupina je zaznamenána v archívu a může být opět nastavena při rozbalování.

GNU ar umí spravovat archívy, jejichž členové mají libovolnou délku jména; ovšem s přihlédnutím na nastavení ar ve vašem systému může být délka jmen členů omezena (kvůli přenositelnosti archívů na ostatní programové nástroje). Pokud takové omezení existuje, limit často bývá 15 znaků (typické pro a.out formáty) nebo 16 (typické pro coff formáty).

ar je počítán mezi binární nástroje, protože archívy jsou užívány zejména jako knihovny obsahující obecně potřebné podprogramy.

ar vytvoří rejstřík symbolů definovaných v alokační tabulce objektových modulů v archívu, pokud zadáme přepínač s. Jakmile je takový rejstřík jednou vytvořen, bude aktualizován vždy, když ar provede nějakou změnu v obsahu archívu (kromě aktualizační operace q). Rejstřík v archívu zrychlí linkování knihovny a dovolí podprogramům v knihovně, aby se navzájem volaly bez ohledu na jejich umístění v archívu.

Můžete použít nm -s nebo nm --print-armap k vypsání tohoto rejstříku. Pokud archív neobsahuje rejstřík, může být zavolána jiná forma ar, zvaná ranlib, která pouze přidá rejstřík k archívu.

GNU ar je kompatibilní se dvěma různými přístupy. jeho aktivitu je možné ovládat pomocí voleb příkazového řádku, jako v různých variantách ar v Unixových systémech; nebo, pokud je určena jediná volba příkazového řádku -M, je možné jej ovládat skriptem předaným přes standardní vstup, stejně jako "knihovnický" program MRI.

VOLBY
GNU ar vám umožňuje zadat v prvním parametru příkazové řádky kód operace p a příznaky modifikátorů mod v libovolném pořadí.

Pokud chcete, může první parametr příkazové řádky začínat pomlčkou.

Klíčové písmeno p určuje, jaká operace se provede; může to být cokoliv z následujících možností, ale musíte uvést pouze jednu z nich:

d   Smaž (delete) moduly z archívu. Moduly ke smazání jsou určeny jako člen...; archív zůstane beze změny, pokud nezadáte žádné soubory.

    Když zadáte modifikátor v, ar bude vypisovat moduly, které jsou smazávány.

m   Tato operace se používá k přemístění (move) členů archívu.

    Pořadí členů v archívu může mít vliv na to, jak budou linkovány programy, jež užívají tuto knihovnu, pokud je nějaký symbol definován ve více než jednom členu.

    Pokud nepoužijete žádné modifikátory s operací "m", každý člen uvedený v parametru člen bude přesunut na konec archívu; můžete uvést modifikátory a, b nebo i, abyste je přesunuli na určené místo.

p   Vypíše (Print) určené členy (jejich obsah - pozn. překl.) archívu na standardní výstup. Pokud užijete modifikátor v, ukáže se jméno modulu před jeho vypsáním na standardní výstup.

    Pokud neuvedete žádné členy, budou vypsány všechny z archívu.

q   Rychlé přidání (Quick append); přidá člen... na konec archívu, bez kontroly přepisu.

    Modifikátory a, b a i nemají vliv na tuto operaci; novější členové jsou vždy přidáni na konec archívu.

    Modifikátor v způsobí, že ar vypisuje seznam přidávaných souborů.

    Protože smysl této operace tkví v její rychlosti, rejstřík symbolů archívu není aktualizován, i když už existuje; můžete použít ar s nebo ranlib, aby byly nové údaje zaneseny do rejstříku symbolů.

    Nicméně již příliš mnoho systémů předpokládá, že rychlé přidání rejstřík zaktualizuje, takže GNU ar implementuje q jako synonymum pro r.

r   Vloží soubory člen... do archívu (s přepsáním (replacement)). Tato operace se liší od q v tom, že každý člen archívu, jehož jméno souhlasí se jménem nově přidávaného člena, bude smazán.

    Pokud jeden ze souborů vyjmenovaných v parametru člen... neexistuje, ar vypíše chybovou hlášku a nechá existující členy archívu s odpovídajícím jménem v původním stavu.

    Jako výchozí jsou novější členové přidáváni na konec archívu; můžete použít jeden z modifikátorů a, b nebo i jako žádost o uložení na jiné místo, určené relativně vzhledem k nějakému existujícímu členu archívu.

    Modifikátor v u této operace způsobí, že pro každý přidaný soubor bude na výstup vypsána jedna řádka s jedním z písmen a nebo r, jež informují, zda byl soubor přidán (appended) (žádný starý člen nebyl vymazán) nebo přepsán (replaced).

t   Zobrazí tabulku souborů, které obsahuje archív nebo ty soubory ze seznamu člen..., které jsou v archívu. Běžně jsou zobrazeny pouze jména členů; pokud chcete vidět také přístupová práva, čas, vlastníka, skupinu a velikost, můžete použít modifikátor v.

    Pokud není uveden žádný člen, budou vypsány všechny soubory archívu.

    Pokud je v archívu (řekněme b.a) více souborů stejného jména (řekněme fie), ar t b.a fie vypíše pouze první výskyt; chcete-li vidět všechny, musíte požádat o celkový výpis---v našem případě ar t b.a.

x   Rozbaluje (extract) členy (vyjmenované v parametru member) z archívu. U této operace můžete užít modifikátor v, aby ar vypisoval jména vybalovaných souborů.

    Pokud neuvedete žádné členy, budou rozbaleny všechny, které archív obsahuje.

Plno modifikátorů (mod) může okamžitě následovat klíčové písmeno p, aby upřesnily chování operace:

a   Přidej nový soubor za (after) existujícího člena archívu. Pokud použijete modifikátor a, musí být uvedeno jméno existujícího člena jako parametr relpos, před určením archívu.

b   Přidej nový soubor před (before) existujícího člena archívu. Pokud použijete modifikátor b, musí být uvedeno jméno existujícího člena jako parametr relpos, před určením archívu. (stejné jako i).

c   Vytvoř (Create) archív. Určený archív je vytvořen vždy, když neexistuje a vy ho chcete měnit. Ale budete varováni, pokud pomocí tohoto modifikátoru neupozorníte, že očekáváte jeho vytvoření.

f   Zkrácení jmen archívu. GNU ar normálně přijímá jména libovolné délky. Tak mohou vzniknout archívy, jež nejsou v některých systémech přenositelné na původní ar. Pokud je tohle váš případ, můžete použít modifikátor f, aby jména souborů byla při ukládání do archívu patřičně zkrácena.

i   Přidej nový soubor před existujícího člena archívu. Pokud použijete modifikátor i, musí být uvedeno jméno existujícího člena jako parametr relpos, před určením archívu. (stejné jako b).

l   Tento modifikátor bude přijmut, ale nepoužit.

N   Používá parametr počet. Používá se v případě vícenásobných stejnojmenných položek v archívu. Rozbalí nebo smaže počet instancí daného jména ze souboru.

o   Zachovej původní (original) datum členů při rozbalování. Pokud tento modifikátor neužijete, rozbalené soubory dostanou časové razítko odpovídající času rozbalení.

P   Použij úplnou cestu při porovnávání souborů v archívu. GNU ar neumí vytvořit archív s úplnou cestou (takové archívy nejsou v souladu s normou POSIX), ale jiné programy pro tvorbu archívů ano. Tato volba způsobí, že GNU ar bude porovnávat názvy souborů za použití úplné cesty, což se může hodit při rozbalování jediného souboru z archívu vytvořeného jiným programem.

s   Vytvoř rejstřík archívu nebo aktualizuj existující rejstřík, i když nebyly provedeny žádné změny archívu. Tento modifikátor můžete použít s libovolnou operací, nebo samostatně (jako klíčové písmeno operace - pozn. překl.). Spuštění ar s na archív má stejný účinek, jako použití ranlib.

S   Nevytvářej tabulku symbolů archívu. To může urychlit tvorbu rozsáhlé knihovny, pokud probíhá v několika krocích. Výsledný archív není možné použít s linkerem. Aby bylo možno vytvořit tabulku symbolů, je nutné při posledním spuštění ar vypustit modifikátor S nebo na archiv spustit ranlib.

u   Normálně vloží ar r... do archívu všechny vyjmenované soubory. Chcete-li vložit pouze ty, které jsou novější než existující členové stejného jména, použijte tento modifikátor. Modifikátor u je povolen pouze při operaci r (replace). Konkrétně, kombinace qu není povolená, protože kontrola časových razítek by zatratila výhodu rychlosti operace q.

v   Tento modifikátor vyvolá informativnější (verbose) verzi operace. Mnoho operací zobrazuje dodatečné informace, jako třeba jména zpracovávaných souborů, pokud přidáte modifikátor v.

V   Tento modifikátor ukáže číslo verze programu ar.

Pro zachování kompatibility s AIX ignoruje ar počáteční volbu -X32_64. Chování dané touto volbou je pro GNU ar výchozí. ar nepodporuje žádné další -X volby; zejména nepodporuje -X32, která je výchozí pro ar v AIX.

@soubor
    Čte volby příkazové řádky ze souboru. Načtené volby jsou vloženy na místo původní volby @soubor. Pokud soubor neexistuje nebo nelze číst, bude volba brána doslovně a nebude odstraněna.

    Volby v souboru jsou odděleny bílými znaky. Bílý znak může být obsažen ve volbě, pokud je volba ohraničena jednoduchými nebo dvojitými uvozovkami. Je možné použít jakýkoliv znak (včetně zpětného lomítka), když před něj napíšeme zpětné lomítko. Soubor může obsahovat další volby @soubor; každá taková volba bude zpracována rekurzivně.

DALŠÍ INFORMACE
nm(1), ranlib(1) a položky v Info pro binutils.

COPYRIGHT
Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".