Руководство по Linux / Unix Command: Ar

GNU Арканзас Программа создает, изменяет и извлекает из архивов. Архив — это отдельный файл, содержащий коллекцию других файлов в структуре, которая позволяет извлечь исходные отдельные файлы (называемые членами архива).

обзор

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

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

Арканзас считается бинарной утилитой, потому что такого рода архивы чаще всего используются как библиотеки, содержащие обычно необходимые подпрограммы.

Арканзас при указании модификатора создает индекс для символов, определенных в перемещаемых объектных модулях в архиве s. После создания этот индекс обновляется в архиве всякий раз, когда Арканзас вносит изменения в его содержимое (за исключением Q операция обновления). Архив с таким индексом ускоряет связь с библиотекой и позволяет подпрограммам в библиотеке вызывать друг друга независимо от их размещения в архиве.

Вы можете использовать нм-с или же nm —print-armap перечислить эту таблицу индексов. Если в архиве отсутствует таблица, другая форма Арканзас называется ranlib можно использовать для добавления только таблицы.

GNU Арканзас разработан для совместимости с двумя различными объектами. Вы можете контролировать его активность, используя параметры командной строки, такие как различные варианты Арканзас в системах Unix; или, если вы укажете один параметр командной строки -M, Вы можете управлять им с помощью сценария, поставляемого через стандартный ввод, например, программу «Библиотекарь» MRI. 

конспект

ар [-X32_64] [] p [mod [relpos] [count]] архив [member …]  

Параметры

GNU Арканзас позволяет смешивать код операции p и флаги модификатора mod в любом порядке, в пределах первого аргумента командной строки.

Если вы хотите, вы можете начать первый аргумент командной строки с тире.

Клавиша p указывает, какую операцию выполнить; это может быть любое из следующего, но вы должны указать только один из них:

d

Удалить модули из архива. Укажите имена модулей, которые будут удалены как член …; архив остается нетронутым, если вы не указываете файлы для удаления.

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

м

Используйте эту операцию для перемещения членов в архиве.

Порядок элементов в архиве может иметь значение в том, как программы связаны с использованием библиотеки, если символ определен более чем в одном элементе.

Если никакие модификаторы не используются с «m», любые члены, которые вы называете в мембранах, перемещаются в конец архива; Вы можете использовать б, или же ямодификаторы, чтобы переместить их в указанное место.

п

Распечатать указанные члены архива, в стандартный выходной файл. Если vуказан модификатор, покажите имя члена перед копированием его содержимого в стандартный вывод.

Если вы не укажете аргументы члена, все файлы в архиве будут напечатаны.

Q

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

Модификаторы б, а также я не влияют на эту операцию; новые участники всегда размещаются в конце архива.

Модификатор v марки Арканзас перечислите каждый файл как он добавлен.

Поскольку смысл этой операции — скорость, индекс таблицы символов архива не обновляется, даже если он уже существовал; вы можете использовать ар с или же ranlib явно обновить индекс таблицы символов.

Однако слишком много разных систем предполагают, что быстрое добавление перестраивает индекс, поэтому GNU ar реализует «q» как синоним «r».

р

Вставьте файлы участника … в архив (с заменой). Эта операция отличается от Q в этом случае любые ранее существующие члены удаляются, если их имена совпадают с добавляемыми.

Если один из файлов, указанных в member … не существует, Арканзас отображает сообщение об ошибке и оставляет нетронутыми любые существующие элементы архива, соответствующие этому имени.

По умолчанию новые члены добавляются в конец файла; но вы можете использовать один из модификаторов б, или же я запросить размещение относительно некоторого существующего члена.

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

T

Выведите на экран таблицу с перечнем содержимого архива или файлов из списка inmember …, которые присутствуют в архиве. Обычно отображается только имя члена; если вы также хотите увидеть режимы (разрешения), метку времени, владельца, группу и размер, вы можете запросить это, указав также v модификатор.

Если вы не укажете участника, все файлы в архиве будут перечислены.

Если существует более одного файла с одинаковым именем (скажем, тьфу) в архиве (скажемb.a), арт бе тьфу перечисляет только первый экземпляр; чтобы увидеть их все, вы должны запросить полный список — в нашем примере, арт т.

Икс

Извлечение членов (именованных участников) из архива. Вы можете использовать v модификатор с этой операцией, чтобы запросить Арканзас перечислите каждое имя по мере его извлечения.

Если вы не укажете участника, все файлы в архиве будут извлечены.

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

Добавить новые файлы после существующего члена архива. Если вы используете модификатор , имя существующего члена архива должно присутствовать в качестве аргумента relpos перед спецификацией архива.

б

Добавить новые файлы перед существующим участником архива. Если вы используете модификатор б, имя существующего члена архива должно присутствовать в качестве аргумента relpos перед спецификацией архива. (такой же как я).

с

Создать архив. Указанный архив всегда создается, если он не существует, когда вы запрашиваете обновление. Но предупреждение выдается, если вы заранее не укажете, что собираетесь его создать, используя этот модификатор.

е

Усеченные имена в архиве. GNU Арканзас обычно разрешает имена файлов любой длины. Это заставит его создавать архивы, которые не совместимы с нативным Арканзас программа на некоторых системах. Если это проблема, то е Модификатор может использоваться для обрезания имен файлов при помещении их в архив.

я

Вставьте новые файлы перед существующим участником архива. Если вы используете модификаторя, имя существующего члена архива должно быть указано в качестве relposargument перед спецификацией архива. (такой же как б).

L

Этот модификатор принят, но не используется.

N

Использует параметр count. Используется, если в архиве несколько записей с одинаковым именем. Извлечь или удалить количество экземпляров данного имени из архива.

о

Сохраните оригинальные даты участников при их извлечении. Если вы не укажете этот модификатор, файлы, извлеченные из архива, будут помечены временем извлечения.

п

Используйте полный путь при сопоставлении имен в архиве. GNU Арканзас не может создать архив с полным именем пути (такие архивы не являются жалобой POSIX), но другие создатели архива могут. Эта опция вызовет GNU Арканзас сопоставлять имена файлов, используя полный путь, что может быть удобно при извлечении одного файла из архива, созданного другим инструментом.

s

Запишите индекс объектного файла в архив или обновите существующий, даже если в архив не было внесено никаких других изменений. Вы можете использовать этот флаг-модификатор либо с любой операцией, либо в одиночку. Бег ар с в архиве эквивалентно запуску ranlibв теме.

S

Не создавайте таблицу символов архива. Это может ускорить создание большой библиотеки в несколько этапов. Полученный архив нельзя использовать с компоновщиком. Чтобы построить таблицу символов, вы должны опустить S модификатор на последнем исполнении Арканзас, или ты должен бежать ranlib в архиве.

U

Как обычно, Ar R… вставляет все файлы, перечисленные в архив. Если вы хотите вставить те файлы, которые вы перечисляете, более новые, чем существующие члены с такими же именами, используйте этот модификатор. U модификатор разрешен только для операции р(Заменить). В частности, сочетание Цюй не допускается, так как проверка временных меток потеряет любое преимущество в скорости от операции Q.

v

Этот модификатор запрашивает подробную версию операции. Многие операции отображают дополнительную информацию, такую ​​как имена файлов, обработанные, когда модификатор vдобавлен

В

Этот модификатор показывает номер версии Арканзас.

Арканзас игнорирует начальную опцию, записанную -X32_64, для совместимости с AIX. Поведение, производимое этой опцией, является стандартным для GNU. АрканзасАрканзас не поддерживает ни один из других -Икс параметры; в частности, он не поддерживает -X32 по умолчанию для AIX Арканзас

Используйте команду man (% man), чтобы увидеть, как команда используется на вашем компьютере.

Ссылка на основную публикацию