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

SYNTAXE
ar [-] {dmpqrtx}[abcilosuvV] [člen ] archív soubory ...

POPIS
GNU program ar tvoří nové archívy, mění jejich obsah a rozbaluje je na jednotlivé soubory. Archív je jeden soubor, jež 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 členy s libovolnou délkou 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ě 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 ' či `nm --print-armap ' k vypsání tohoto rejstříku. Pokud archív neobsahuje rejstřík, je volána jiná forma ar . Pomocí ranlib lze přidat rejstřík k archívu. ar potřebuje nejméně dva parametry: klíčové písmeno určující operaci (volitelně následované dalšími klíčovými písmeny určujícími modifikátory ), a archív, na kterém má operaci provést. Většina operací přijímá i následující soubory (argumenty, určující jednotlivé soubory určené k operaci).

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 právě jednu z nich:

d   Smaže (delete) moduly z archívu. V parametru soubory zadejte moduly určené ke smazání; 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. Poloha č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 soubory bude přesunut na konec archívu; můžete uvést modifikátory `a ', `b ', či `i ', abyste je přesunuli na jiné místo.

p   Vypíše (print) určené členy (jejich obsah - pozn. překl.) archívu na standardní výstup. Pokud užijete modifikátoru `v ', ukáže se jméno modulu před jeho vypsáním na standardní výstup. Pokud neuvedete žádné soubory , budou vypsány všechny z archívu.

q   Rychlé přidání (quick append) ; přidá soubory na konec archív u, 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řidaný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 ' či ranlib , aby byly nové údaje zaneseny do rejstříku symbolů.

r   Vloží soubory do archív u (s přepsáním ). 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 parametrusoubory 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. Novější členové jsou přidáni na konec archívu; můžete použít jeden z modifikátorů `a ', `b ', či `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 soubory , 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 neuvedete žádné soubory , 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 soubory ) 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é soubory , budou rozbaleny všechny, které archív obsahuje.

Plno modifikátorů (mod ) může okamžitě následovat klíčové slovo 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 člen , před určením archív u.

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 člen , před určením archív u. (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. 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 ukládaných souborů byla patřičně zkrácena.

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

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

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í.

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 '.

u   ar r ... vloží 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 operací `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 ar.

Další informace
`binutils' položka v info; The GNU Binary Utilities, Roland H. Pesch (Říjen 1991). nm(1) , ranlib(1) .

KOPÍROVÁNÍ
Následující informace musí být zachovány v původní podobě

Copyright (c) 1991 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies.

Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one.

Permission is granted to copy and distribute translations of this manual into another language, under the above conditions for modified versions, except that this permission notice may be included in translations approved by the Free Software Foundation instead of in the original English.