Разбирање на Linux команда: Ar

Програмата GNU создава , модифицира и извади од архивите. Архива е единствена датотека која држи колекција од други датотеки во структура која овозможува да се повратат оригиналните поединечни датотеки (наречени членови на архивата).

Преглед

Содржината на оригиналната датотека, режимот (дозволите), временската ознака, сопственикот и групата се зачувани во архивата и можат да се вратат на екстракција.

GNU ar може да одржува архиви чии членови имаат имиња од која било должина; сепак, во зависност од тоа како ar е конфигуриран на вашиот систем, може да се наметне ограничување на должината на член-член за компатибилност со архивските формати одржувани со други алатки. Ако постои, границата честопати е 15 карактери (типични за формати поврзани со a.out) или 16 карактери (типични за формати поврзани со coff).

ar се смета за бинарна алатка, бидејќи архивите од овој вид најчесто се користат како библиотеки со најчесто потребни подпротоини.

ar создава индекс на симболите дефинирани во модули за премостливи предмети во архивата кога ќе го наведете модификаторот s . Откако ќе се креира, овој индекс се ажурира во архивата секогаш кога ar прави промена на неговата содржина (освен за операцијата за ажурирање q ). Архива со таков индекс го забрзува поврзувањето со библиотеката, и дозволува рутини во библиотеката да се повикуваат едни на други без оглед на нивното поставување во архивата.

Можете да ги користите nm -s или nm -print-armap за да ја наведете оваа индексна табела. Ако на архивата му недостасува табелата, може да се користи друга форма на arl, наречена ranlib, за да се додаде само табелата.

GNU ar е дизајниран да биде компатибилен со две различни објекти. Можете да ја контролирате неговата активност користејќи опции на командната линија, како што се различни видови на ar на Unix системите ; или, ако ја наведете единствената команда- линија опција , можете да ја контролирате со скрипта доставена преку стандарден влез, како што е МRI `` библиотекар '' програма.

СИНОПСИС

ar [ -X32_64 ] [ - ] p [ mod [ relpos ] [ count ]] архива [ член ...]

ОПЦИИ

GNU ar ви овозможува да го измените модниот код на операторот p и модификаторот за мода во било кој ред, во рамките на првиот аргумент од командната линија.

Ако сакате, може да го започнете првиот аргумент од командната линија со цртичка.

P keyletter ја одредува операцијата за извршување; тоа може да биде било кој од следниве, но мора да наведете само еден од нив:

d

Избришете ги модулите од архивата. Наведете ги имињата на модулите кои треба да се избришат како член ...; архивата е недопрена ако не специфицирате датотеки за бришење.

Ако го наведете модификаторот v , секој список на секој модул ќе биде избришан.

м

Користете ја оваа операција за да ги преместите членовите во архива.

Нарачувањето на членови во архива може да направи разлика во тоа како програмите се поврзани со користење на библиотеката, ако симболот е дефиниран кај повеќе од еден член.

Ако не се користат модификатори со "m", сите членови што ги именувате во аргументите на членовите се преместуваат на крајот од архивата; можете да ги користите а , б , или i модификаторите за да ги преместите на одредено место.

стр

Печатете ги наведените членови на архивата, до стандардната излезна датотека. Ако е наведен модификаторот v , прикажете го името на членот пред да ја копирате неговата содржина на стандарден излез.

Ако не наведете аргументи на член , сите датотеки во архивата се испечатени.

q

Брзо додавање ; Историски гледано, додајте го членството на датотеката ... до крајот на архивата , без проверка за замена.

Модификаторите a , b и јас не влијаат на оваа операција; нови членови секогаш се наоѓаат на крајот од архивата.

Модификаторот v прави ар листа на секоја датотека како што е додадена.

Бидејќи точката на оваа операција е брзина, индексот на симболи на архивата не се ажурира, дури и ако веќе постои; можете да го користите ar s или ranlib експлицитно за да го ажурирате индексот на симболни табели.

Сепак, премногу различни системи претпоставуваат брзо додавање го обновуваат индексот, па GNU ar ги имплементира "q" како синоним за "r".

р

Вметнете го членскиот документ ... во архива (со замена ). Оваа операција се разликува од q во која било претходно постоечки членови се бришат ако нивните имиња се совпаѓаат со оние што се додаваат.

Ако една од датотеките именувана во член ... не постои, ar прикажува порака за грешка и не остава рамномерно ниту постоечки членови на архивата што одговараат на тоа име.

Стандардно, на крајот од датотеката се додаваат нови членови; но можете да користите еден од модификаторите a , b или i за да побарате поставување во однос на некој постоечки член.

Модификаторот v кој се користи со оваа операција извлекува линија на излез за секоја вметната датотека, заедно со една од буквите a или r за да покаже дали датотеката е додадена (ниту еден стар член не е избришан) или не е заменет.

т

Прикажи табела со наведување на содржината на архивата , или оние на датотеките наведени во член ... кои се присутни во архивата. Нормално е прикажано само името на членот; ако исто така сакате да ги видите режимите (дозволи), временската ознака, сопственикот, групата и големината, можете да го побарате исто така со наведување на модификаторот v .

Ако не наведете член , сите датотеки во архивата се наведени.

Ако има повеќе од една датотека со исто име (на пример, fie ) во архива (на пример ba ), ar t ba fie ги наведува само првите инстанци; за да ги видите сите, мора да побарате целосен список --- во нашиот пример, ar t ba .

x

Извадете ги членовите (именуван член ) од архивата. Можете да го користите модификаторот v со оваа операција, за да побарате да го наведете секое име како што го извлекува.

Ако не наведете член , сите датотеки во архивата се извлечени.

Голем број на модификатори ( мод ) може веднаш да го следат p keyletter, за да наведете варијации за однесувањето на операцијата:

a

Додајте нови датотеки по постоечки член на архивата. Ако го користите модификаторот a , името на постоечкиот член од архивата мора да биде присутен како аргумент relpos , пред спецификацијата на архивата .

б

Додајте нови датотеки пред постоечки член на архивата. Ако го користите модификаторот b , името на постоечкиот член на архивата мора да биде присутен како аргумент relpos , пред спецификацијата на архивата . (исто како и јас ).

в

Направете архива. Специфицираната архива секогаш се создава ако не постои, кога барате ажурирање. Но предупредување се издава, освен ако однапред однапред назначете дека очекувате да го креирате, користејќи го овој модификатор.

f

Скратете ги имињата во архивата. GNU ar нормално ќе дозволи имиња на датотеки од било која должина. Ова ќе предизвика тоа да создаде архиви кои не се компатибилни со локалната програма на некои системи. Ако ова е загриженост, модификаторот f може да се користи за да ги намали имињата на датотеките кога ги става во архивата.

i

Внеси нови датотеки пред постоечки член на архивата. Ако го користите модификаторот i , името на постоечки член од архивата мора да биде присутна како аргумент relpos , пред спецификацијата на архивата . (исто како и б ).

л

Овој модификатор е прифатен, но не се користи.

N

Користи параметар за брои . Ова се користи ако има повеќе записи во архивата со исто име. Извадете или избришете броја на инстанца од даденото име од архивата.

o

Зачувајте ги првичните датуми на членовите кога ги извлекувате. Доколку не го наведете овој модификатор, датотеките извлечени од архивата се печат со времето на екстракција.

P

Користете го името на целосната патека при совпаѓање на имињата во архивата. GNU ar не може да создаде архива со целосна име на патеката (таквите архиви не се POSIX жалба), но други креатори на архиви. Оваа опција ќе предизвика GNU ar да одговара на имињата на датотеките користејќи целосно име на пат, што може да биде погодно кога ќе се извади една датотека од архива создадена од друга алатка.

s

Напишете индекс на објект-датотека во архивата или обновете постоечка, дури и ако не е направена друга промена во архивата. Можете да го користите овој знак за модификатор или со било која операција, или сам. Вклучувањето на архива е еквивалентно на извршување на ранлиб на неа.

S

Не генерира табела со симболи за архиви. Ова може да го забрза изградбата на голема библиотека во неколку чекори. Резултирачката архива не може да се користи со линкер. Со цел да се изгради табела со симболи, мора да ја испуштите модификаторот S за последната изведба на ar , или мора да извршите ranlib во архивата.

u

Нормално, ar r ... внесува сите датотеки наведени во архивата. Ако сакате да вметнете само оние од датотеките што ги имате, кои се понови од постоечките членови со истите имиња, користете го овој модификатор. Модификаторот u е дозволен само за операцијата r (замени). Особено, комбинацијата qu не е дозволена, бидејќи проверката на временските ознаки ќе ја изгуби секоја брзина предност од операцијата q .

v

Овој модификатор бара разговорна верзија на операција. Многу операции прикажуваат дополнителни информации , како што се обработени имиња на датотеки, кога модификаторот v се додава.

V

Овој модификатор го прикажува бројот на верзијата на ar .

ar игнорира почетна опција напишана -X32_64 , за компатибилност со AIX. Однесувањето произведено од оваа опција е стандардно за GNU ar . ar не поддржува ниту една од другите -X опции; особено, не поддржува -X32 што е стандардно за AIX ar .

Важно: Користете ја командата за човекот ( % man ) за да видите како се користи командата на вашиот компјутер.