Porozumění příkazu Linux: Ar

Program GNU ar vytváří , upravuje a extrahuje z archivů. Archiv je jediný soubor s kolekcí dalších souborů ve struktuře, která umožňuje načtení původních jednotlivých souborů (tzv. Členů archivu).

Přehled

Obsahy, režim (oprávnění) původních souborů, časové razítko, vlastník a skupina se v archivu zachovají a mohou být obnoveny při extrakci.

GNU ar může udržovat archivy, jejichž členové mají jména libovolné délky; avšak v závislosti na tom, jak je na vašem systému konfigurováno ar, může být stanovena omezení délky jména člena pro kompatibilitu s archivními formáty udržovanými s jinými nástroji. Pokud existuje, je limit často 15 znaků (typicky pro formáty vztahující se k a.out) nebo 16 znaků (typické pro formáty související s kabelem).

ar je považován za binární nástroj, protože archivy tohoto druhu jsou nejčastěji používány jako knihovny, které mají běžně potřebné podprogramy.

ar vytvoří index přiřazení symbolů definovaných v přemístitelných objektových modulech v archivu při zadání modifikátoru s . Jakmile je tento index vytvořen, aktualizuje se v archivu vždy, když provede změnu jeho obsahu (uložte operaci aktualizace q ). Archiv s takovým indexem urychluje propojení s knihovnou a umožňuje rutinám v knihovně navzájem volat bez ohledu na umístění v archivu.

Můžete použít tabulku indexů nm -s nebo nm -print-armap . Pokud v archivu chybí tabulka, lze použít jinou formu nazývanou ranlib, která přidá pouze tabulku.

GNU ar je navržena tak, aby byla kompatibilní se dvěma různými zařízeními. Jeho činnost můžete řídit pomocí možností příkazového řádku, jako jsou různé odrůdy ar v systémech Unix ; nebo pokud zadáte jednu volbu příkazového řádku -M , můžete ji ovládat skriptem dodaným standardním vstupem, jako je program knihovny MRI `` librarian ''.

SYNOPSE

ar [ -X32_64 ] [ - ] p [ mod [ relos ] [ count ]] archiv [ člen ...]

MOŽNOSTI

GNU ar vám umožňuje kombinovat operační kód p a modifier flags mod v libovolném pořadí v rámci prvního argumentu příkazového řádku.

Pokud si přejete, můžete začít první argument příkazového řádku s pomlčkou.

P keyletter určuje, jakou operaci je třeba provést; může to být některou z následujících, ale musíte zadat pouze jednu z nich:

d

Odstranit moduly z archivu. Zadejte názvy modulů, které chcete smazat jako členy ...; archiv je nedotčený, pokud zadáte žádné soubory, které chcete odstranit.

Pokud zadáte modifikátor v, zobrazí se každý modul při jeho odstranění.

m

Tuto operaci použijte k přesunutí členů do archivu.

Uspořádání členů v archivu může mít vliv na to, jak jsou programy propojeny pomocí knihovny, pokud je symbol definován ve více než jednom členu.

Pokud nejsou žádné modifikátory používány s parametrem "m", všechny členy, které jste jmenovali v argumentech členů, jsou přesunuty na konec archivu; můžete použít modifikátory a , b nebo i k jejich přesunutí na určené místo.

str

Vytiskněte specifikované členy archivu do standardního výstupního souboru. Pokud je modifikátor specifikován, uveďte název člena před kopírováním jeho obsahu do standardního výstupu.

Pokud zadáte žádné argumenty člena , vytisknou se všechny soubory v archivu.

q

Rychle připojit ; Historicky přidávejte členy souborů ... na konec archivu , aniž byste museli zkontrolovat výměnu.

Modifikátory a , b a i neovlivňují tuto operaci; noví členové jsou vždy umístěni na konci archivu.

Modifikátor v vytvoří seznam jednotlivých souborů, jak je připojeno.

Protože bodem této operace je rychlost, index tabulky symbolů archivu není aktualizován, i když již existoval; můžete explicitně aktualizovat index tabulky symbolů.

Nicméně příliš mnoho různých systémů předpokládá, že rychlý append znovu vytvoří index, takže GNU ar implementuje "q" jako synonymum pro "r".

r

Vložte člen souboru ... do archivu (s náhradou ). Tato operace se liší od q tím, že všechny dříve existující členy budou smazány, pokud se jejich názvy shodují s přidanými členy.

Pokud některý ze souborů pojmenovaných v členu ... neexistuje, zobrazí se chybová zpráva a ponechá nerušený všechny existující členy archivu odpovídající tomuto názvu.

Ve výchozím nastavení jsou na konci souboru přidáni noví členové; ale můžete požádat některého z modifikátorů a , b nebo i o umístění v poměru k některému stávajícímu členu.

Modifikátor v použitý s touto operací vygeneruje řádek výstupu pro každý vložený soubor spolu s jedním z písmen a nebo r, který označuje, zda byl soubor připojen (žádný starý člen není smazán) nebo nahrazen.

t

Zobrazte tabulku s obsahem archivu nebo obsahu archivů uvedených v článku ..., které jsou obsaženy v archivu. Obvykle je zobrazen pouze název člena; Pokud chcete také zobrazit režimy (oprávnění), časové razítko, majitel, skupinu a velikost, můžete požádat o to, že také zadáte modifikátor v.

Pokud nezadáte člena , jsou uvedeny všechny soubory v archivu.

Pokud existuje více než jeden soubor se stejným názvem (řekněme fie ) v archivu (např. Ba ), zobrazí se pouze první instance; abyste je viděli všechny, musíte požádat o úplný výpis --- v našem příkladu, ar ba .

X

Vyjměte členy (jmenovaný člen ) z archivu. Pomocí modifikátoru v můžete pomocí této operace požadovat, aby se při každém výpisu zobrazovalo každé jméno.

Pokud nezadáte člena , jsou všechny soubory v archivu extrahovány.

Množství modifikátorů ( mod ) může bezprostředně následovat p keyletter, specifikovat změny v chování operace:

A

Přidat nové soubory po stávajícím členu archivu. Používáte-li modifikátor a , musí být jméno archivu přítomno jako argument relos před specifikací archivu .

b

Přidejte nové soubory před existující člen archivu. Používáte-li modifikátor b , musí být jméno archivu přítomno jako argument relos před specifikací archivu . (stejně jako i ).

C

Vytvořte archiv. Zadaný archiv je vždy vytvořen, pokud neexistuje, když požadujete aktualizaci. Upozornění však vydáte, pokud předem neurčíte, že jej vytvoříte pomocí tohoto modifikátoru.

F

Zrušte jména v archivu. GNU ar zpravidla povoluje názvy souborů libovolné délky. To způsobí, že v některých systémech vytvoří archivy, které nejsou kompatibilní s nativním programem ar . Pokud se jedná o obavu, modifikátor f může být použit při zkrácení názvů souborů při jejich uložení do archivu.

i

Vložte nové soubory před existující člen archivu. Pokud použijete modifikátor i , musí být jméno archivu přítomen jako argument relos před specifikací archivu . (stejně jako b ).

l

Tento modifikátor je akceptován, ale nepoužívá se.

N

Používá parametr počet . Používá se, pokud v archivu existuje více záznamů se stejným názvem. Výpis nebo odstranění počtu instancí daného jména z archivu.

Ó

Při jejich extrahování zachovat původní data členů. Pokud tento modifikátor nezadáte, jsou soubory extrahované z archivu označeny časem extrakce.

P

Při přiřazování jmen v archivu použijte úplný název cesty. GNU ar nemůže vytvořit archiv s úplným názvem cesty (takové archivy nejsou POSIX stížností), ale ostatní tvůrci archivu mohou. Tato volba způsobí, že GNU ar shoduje s názvy souborů pomocí úplného názvu cesty, což může být výhodné při extrakci jednoho souboru z archivu vytvořeného jiným nástrojem.

s

Do archivu zapište index objektového souboru nebo aktualizujte existující index, a to ani v případě, že do archivu nedojde. Tento příznak modifikátoru můžete použít buď s jakoukoli operací nebo samostatně. Běh v archivu je ekvivalentní běhu.

S

Nevytvářejte tabulku symbolů archivu. To může urychlit budování velké knihovny v několika krocích. Výsledný archiv nelze použít s linkerem. Pro vytvoření tabulky symbolů musíte vynechat modifikátor S při posledním spuštění ar , nebo musíte v archivu spustit ranlib .

u

Normálně, ar r ... vloží všechny soubory uvedené do archivu. Pokud chcete vložit pouze ty soubory, které jsou novější než existující členové stejných jmen, použijte tento modifikátor. Modifikátor u je povolen pouze pro operaci r (nahrazení). Zejména kombinace qu není povolena, protože kontrola časových značek by ztratila jakoukoli rychlostní výhodu z operace q .

proti

Tento modifikátor vyžaduje podrobnou verzi operace. Mnohé operace zobrazují další informace , například názvy souborů zpracovávané, když je připojen modifikátor v .

PROTI

Tento modifikátor zobrazuje číslo verze ar .

ar ignoruje počáteční volbu napsanou -X32_64 , pro kompatibilitu s AIX. Chování vytvořené touto volbou je výchozí pro GNU ar . ar nepodporuje žádné další možnosti -X ; zejména to nepodporuje -X32, což je výchozí pro AIX ar .

Důležité: Použijte příkaz man ( % man ), abyste zjistili, jaký příkaz se používá v konkrétním počítači.