Разбиране на Linux Command: Ar

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

Преглед

Съдържанието на оригиналния файл, режимът (разрешения), тайма-мармерът, собственикът и групата се запазват в архива и могат да бъдат възстановени при екстракция.

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

ar се счита за двоична помощна програма, тъй като архивите от този вид се използват най-често като библиотеки, притежаващи обикновено необходимите подпрограми.

ar създава индекс на символите, дефинирани в модулите за преместване на обекти в архива, когато посочите модификатора s . Веднъж създаден, този индекс се актуализира в архива, когато ар прави промяна в съдържанието му (освен за операцията за актуализиране на q ). Архив с такъв индекс ускорява свързването с библиотеката и позволява рутинните процедури в библиотеката да се извикват един друг, без да се отнася до разположението им в архива.

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

GNU ar е проектиран да бъде съвместим с две различни съоръжения. Можете да контролирате дейността си чрез опции на командния ред, като различните сортове ar в Unix системи ; или ако зададете опцията за единична команда , можете да я контролирате със скрипт, предоставен чрез стандартен вход, като програмата за "библиотекар" на MRI.

Кратък обзор

ar [ -X32_64 ] [ - ] p [ mod [ репос ] [ брой ]] архив [ член ...]

НАСТРОИКИ

GNU ar ви позволява да смесите оперативния код p и modifier flags mod в произволен ред, в рамките на първия аргумент на командния ред.

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

Буквеният ключ p определя коя операция да се изпълни; това може да е едно от следните, но трябва да посочите само една от тях:

д

Изтриване на модули от архива. Посочете имената на модулите, които да бъдат изтрити като членове ...; архивът е недокоснат, ако не посочите файлове, които да бъдат изтрити.

Ако зададете модификатора v , ar изброява всеки модул, тъй като той се изтрива.

m

Използвайте тази операция, за да преместите членове в архив.

Подреждането на членовете в архив може да промени начина, по който програмите са свързани чрез използване на библиотеката, ако символът е дефиниран в повече от един член.

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

р

Отпечатайте посочените членове на архива в стандартния изходен файл. Ако е зададен модификаторът v , покажете името на члена, преди да копирате съдържанието му в стандартния изход.

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

р

Бързо прибавям ; Исторически добавете файла член ... до края на архива , без да се проверява за замяна.

Модификаторите а , b и аз не засягат тази операция; новите членове винаги се намират в края на архива.

Модификаторът v прави списък на всеки файл, тъй като той е добавен.

Тъй като точката на тази операция е скорост, индексът на таблицата със символи на архива не се актуализира, дори и да е съществувал; можете да използвате изрично, за да актуализирате индекса на таблицата със символи.

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

R

Поставете файла член ... в архивподмяна ). Тази операция се различава от q, тъй като всички вече съществуващи членове се изтриват, ако техните имена съвпадат с тези, които се добавят.

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

По подразбиране новите членове се добавят в края на файла; но можете да използвате един от модификаторите a , b или i за заявяване на разположение по отношение на съществуващ член.

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

T

Показва се таблица, съдържаща съдържанието на архива или съдържанието на файловете, изброени в член ..., които се намират в архива. Обикновено се показва само името на члена; ако искате да видите и режимите (разрешения), маркера на времето, собственикът, групата и размерите, можете да поискате това, като посочите модификатора.

Ако не посочите член , всички файлове в архива са изброени.

Ако има повече от един файл с едно и също име (да речем, или ) в архив (да речем), би трябвало да се посочва само първият екземпляр; за да ги видите всички, трябва да поискате пълна регистрация --- в нашия пример, а именно .

х

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

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

Редица модификатори ( mod ) могат незабавно да следват p keyletter, за да уточнят вариациите в поведението на операцията:

а

Добавете нови файлове след съществуващ член на архива. Ако използвате модификатор a , името на съществуващ член на архива трябва да присъства като аргумент за архивиране преди архивната спецификация.

б

Добавете нови файлове преди съществуващ член на архива. Ако използвате модификатора b , името на съществуващ член на архива трябва да присъства като аргумент за архивиране преди архивната спецификация. (същото като i ).

° С

Създайте архива. Посоченият архив винаги се създава, ако не съществува, когато поискате актуализация. Но предупреждение се издава, ако не сте посочили предварително, че очаквате да го създадете, като използвате този модификатор.

е

Премахване на имената в архива. GNU ar обикновено разрешава имена на файлове с всякаква дължина. Това ще доведе до създаването на архиви, които не са съвместими с нативната програма ar на някои системи. Ако това е проблем, модификаторът f може да бъде използван за съкращаване на имената на файловете при поставянето им в архива.

аз

Поставете нови файлове пред съществуващ член на архива. Ако използвате модификатора i , името на съществуващ член на архива трябва да присъства като аргумент за архивиране преди архива . (същото като b ).

л

Този модификатор се приема, но не се използва.

N

Използва параметъра за броене . Това се използва, ако има няколко вписвания в архива със същото име. Извличане или изтриване на броя на имената на дадено име от архива.

о

Съхранявайте първоначалните дати на членовете, когато ги извличате. Ако не посочите този модификатор, файловете, извлечени от архива, ще бъдат маркирани с времето на извличане.

P

Използвайте пълното име на пътя, когато отговаряте на имената в архива. GNU ar не може да създаде архив с пълен име на път (такива архиви не са POSIX оплаквания), но други архивни създатели могат. Тази опция ще накара GNU ar да съвпада с имена на файлове, като използва пълно име на пътя, което може да бъде удобно при извличането на един файл от архив, създаден от друг инструмент.

с

Запишете индекса на обект-файл в архива или актуализирайте съществуващ, дори ако не е направена друга промяна в архива. Можете да използвате този флаг на модификатора с всяка операция или самостоятелно. Стартирането на архив е еквивалентно на това, че тичаш в него.

С

Не генерирайте архивна таблица със символи. Това може да ускори изграждането на голяма библиотека на няколко стъпки. Полученият архив не може да се използва с линкера. За да създадете таблица със символи, трябва да пропуснете модификатора на S при последното изпълнение на ар , или трябва да пуснете ралиб в архива.

ф

Обикновено, ar r ... вмъква всички файлове, изброени в архива. Ако искате да вмъкнете само тези от изброените файлове, които са по-нови от съществуващите членове със същите имена, използвайте този модификатор. Модификаторът u е разрешен само за операцията r (замяна). По-специално, комбинацията qu не е разрешена, тъй като проверката на времевите марки ще загуби предимство пред скоростта от операцията q .

V

Този модификатор изисква по- подробна версия на операция. Много операции показват допълнителна информация , като например имената на файлове, обработени, когато модификаторът v е добавен.

V

Този модификатор показва номера на версията на ар .

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

Важно: Използвайте командата човек ( % man ), за да видите как се използва команда на вашия компютър.