Понимание команды Linux: Ar
В GNUар программа создает, изменяет и извлекает элементы из файловых архивов. An архив один файл, содержащий коллекцию других файлы в структуре, которая позволяет извлекать исходные отдельные файлы (называемые члены архива).
Обзор
Исходное содержимое файлов, режим (разрешения), временная метка, владелец и группа сохраняются в архиве и могут быть восстановлены при извлечении.
GNU ар может вести архивы, члены которых имеют имена любой длины; однако, в зависимости от того, как ар настроен в вашей системе, ограничение на длину имени члена может быть наложено для совместимости с форматами архивов, поддерживаемыми другими инструментами. Если он существует, ограничение часто составляет 15 символов.
Ar считается двоичной утилитой, потому что архивы такого типа чаще всего используются как библиотеки проведение часто используемых подпрограмм.
Ar создает индекс для символов, определенных в перемещаемых объектных модулях в архиве, когда вы указываете модификатор s. После создания этот индекс обновляется в архиве всякий раз, когда
Вы можете использовать нм-с или nm --print-armap чтобы перечислить эту индексную таблицу. Если в архиве нет таблицы, другая форма ар называется ранлиб добавляет только таблицу.
GNU ар спроектирован так, чтобы быть совместимым с двумя различными объектами. Управляйте его активностью с помощью параметров командной строки, таких как различные разновидности ар на Системы Unix; или, если вы укажете сингл команда-строчный вариант -M, вы можете управлять им с помощью сценария, поступающего из стандартного ввода.
Синопсис
Команда принимает следующий общий вид:
ar [-X32_64] [-] p [mod [relpos] [count]] архив [член ...]
Параметры
GNU ар позволяет смешивать код операции п и флаги модификаторов мод в любом порядке в пределах первого аргумента командной строки.
Если хотите, вы можете начать первый аргумент командной строки с тире.
В п keyletter указывает, какую операцию выполнить; это может быть любое из следующих значений, но вы должны указать только одно из них:
- d: Удалить модули из архива. Укажите имена модулей, которые нужно удалить, как член; архив не будет затронут, если вы не укажете файлы для удаления. Если вы укажете v модификатор, ар перечисляет каждый модуль по мере его удаления.
- м: Используйте эту операцию, чтобы двигаться участники в архиве. Порядок элементов в архиве может иметь значение для компоновки программ с использованием библиотеки, если символ определен более чем в одном элементе. Если никакие модификаторы не используются с м, любые участники, которых вы называете в член аргументы перенесены в конец архива; вы можете использовать а, б, или я модификаторы, чтобы вместо этого переместить их в указанное место.
- п: Распечатать указанные элементы архива в стандартный выходной файл. Если v указан модификатор, покажите имя элемента перед копированием его содержимого в стандартный вывод. Если вы укажете нет член аргументы, печатаются все файлы в архиве.
- q: Быстрое добавление; Исторически сложилось так, что файлы добавлялись член до конца архив, без проверки на замену. Модификаторы а, б, а также я делать нет повлиять на эту операцию; новые участники всегда помещаются в конец архива. Модификатор v делает ар перечислить каждый файл по мере добавления. Поскольку суть этой операции - скорость, индекс таблицы символов архива не обновляется, даже если он уже существует; вы можете использовать ar s или ранлиб явно для обновления индекса таблицы символов. Однако слишком много разных систем предполагают, что быстрое добавление перестраивает индекс, поэтому GNU ar реализует «q» как синоним «r».
- р: Вставить файлы член в архив (с участием замена). Эта операция отличается от q в том, что любые ранее существовавшие члены удаляются, если их имена совпадают с добавляемыми. Если один из файлов, указанных в член не существует, ар отображает сообщение об ошибке и оставляет нетронутыми все существующие элементы архива, соответствующие этому имени. По умолчанию новые члены добавляются в конец файла, но вы можете использовать один из модификаторов а, б, или я для запроса размещения относительно некоторого существующего члена. Модификатор v используется с этой операцией, выводит строку вывода для каждого вставленного файла вместе с одной из букв а или р чтобы указать, был ли файл добавлен (старый элемент не удален) или заменен.
- т: Показать стол перечисление содержания архив, или файлы, перечисленные в член которые присутствуют в архиве. Обычно отображается только имя члена; если вы также хотите увидеть режимы (разрешения), отметку времени, владельца, группу и размер, вы можете запросить это, также указав v модификатор. Если вы не укажете член, перечислены все файлы в архиве. Если существует несколько файлов с одинаковым именем (скажем, тьфу) в архиве (скажем б.а), ar t b.a fie перечисляет только первый экземпляр; чтобы увидеть их все, вы должны запросить полный список - в нашем примере ar t b.a.
- Икс: Извлекать члены (названные член) из архива. Использовать v модификатор с этой операцией, чтобы запросить ар перечислить каждое имя по мере его извлечения. Если вы не укажете член, все файлы в архиве извлекаются.
Несколько модификаторов могут следовать сразу за п keyletter, чтобы указать варианты поведения операции:
- а: Добавить новые файлы после существующий член архива. Если вы используете модификатор а, имя существующего члена архива должно присутствовать как relpos аргумент, перед архив Технические характеристики.
- б: Добавить новые файлы до существующий член архива. Если вы используете модификатор б, имя существующего члена архива должно присутствовать как relpos аргумент, перед архив спецификация (такая же, как я).
- c: Создавать архив. Указанный архив всегда создается, если он не существует, когда вы запрашиваете обновление. Но выдается предупреждение, если вы заранее не укажете, что планируете создать его с помощью этого модификатора.
- ж: Обрезать имена в архиве. GNU ар обычно разрешает имена файлов любой длины, заставляя его создавать архивы, несовместимые с ар программа на некоторых системах. Если совместимость вызывает беспокойство, ж модификатор может использоваться для обрезания имен файлов при их помещении в архив.
- я: Вставить новые файлы до существующий член архива. Если вы используете модификатор я, имя существующего члена архива должно присутствовать как relpos аргумент, перед архив спецификация (такая же, как б).
- л: Этот модификатор принят, но не используется.
- N: Использует считать параметр. Это используется, если в архиве есть несколько записей с одинаковым именем. Извлечь или удалить экземпляр считать данного имени из архива.
- о: Сохранить оригинал даты участников при их извлечении. Если вы не укажете этот модификатор, файлы, извлеченные из архива, будут отмечены временем извлечения.
- п: Используйте полный путь при сопоставлении имен в архиве. GNU ар не может создать архив с полным именем пути, но другие создатели архива могут. Эта опция вызовет GNU ар для сопоставления имен файлов с использованием полного имени пути, что может быть удобно при извлечении одного файла из архива, созданного другим инструментом.
- s: Записать индекс объектного файла в архив или обновить существующий, даже если в архив не было внесено никаких других изменений. Вы можете использовать этот флаг-модификатор либо с любой операцией, либо отдельно. Бег ar s в архиве эквивалентно запуску ранлиб в теме.
- S: Не создавать архивную таблицу символов. Этот параметр может ускорить создание большой библиотеки за несколько шагов. Полученный архив нельзя использовать с компоновщиком. Чтобы построить таблицу символов, вы должны опустить S модификатор при последнем выполнении ар, или вы должны бежать ранлиб в архиве.
- ты: Как обычно, ar r... вставляет все файлы, перечисленные в архив. Если вы хотите вставить Только те из перечисленных вами файлов, которые новее, чем существующие элементы с такими же именами, используйте этот модификатор. В ты модификатор разрешен только для операции р (заменять). В частности, сочетание qu не допускается, так как проверка отметок времени приведет к потере преимущества в скорости операции. q.
- v: Этот модификатор запрашивает подробный версия операции. Отображение многих операций Дополнительная информация, например, обрабатываемые имена файлов, когда модификатор v прилагается.
- V: Этот модификатор показывает номер версии ар.
Использовать человек команда (% человек), чтобы увидеть, как команда используется на вашем конкретном компьютере.
Другие формы архивации
Linux поддерживает множество различных методов архивирования файлов. Например, ZIP-файлы являются кроссплатформенными. Несмотря на то что ар полезен для быстрых локальных архивов, рассмотрите альтернативные форматы, если вы планируете поделиться архивом с кем-то, кто использует Windows.