Поиск по сайту:

Учебник по командам Linux ar для начинающих (5 примеров)


На этой странице

  1. Команда Linux ar
  2. Q1. Как создать архив с помощью ar?
  3. Вопрос 2. Как вывести содержимое архива с помощью ar?
  4. Вопрос 3. Как напрямую отображать содержимое файлов, включенных в архив?
  5. Q4. Как добавить нового участника в архив?
  6. В5. Как удалить участника из архива?
  7. Заключение

В Linux есть несколько утилит командной строки, позволяющих создавать архивы. Одной из таких утилит является ar. В этом уроке мы обсудим основы этого инструмента командной строки, используя несколько простых для понимания примеров. Но прежде чем мы это сделаем, стоит упомянуть, что все примеры, включенные в статью, были протестированы на компьютере с Ubuntu 18.04 LTS.

Команда Linux ar

Команда ar позволяет создавать, изменять или извлекать архивы. Ниже приведен его синтаксис:

ar [OPTIONS] archive_name member_files

А вот что говорит man-страница об этом инструменте:

The GNU ar program creates, modifies, and extracts from archives. An archive is a single file 
holding a collection of other files in a structure that makes it possible to retrieve the original
individual files (called members of the archive).

The original files' contents, mode (permissions), timestamp, owner, and group are preserved in the
archive, and can be restored on extraction.

GNU ar can maintain archives whose members have names of any length; however, depending on how ar is
configured on your system, a limit on member-name length may be imposed for compatibility with
archive formats maintained with other tools.  If it exists, the limit is often 15 characters
(typical of formats related to a.out) or 16 characters (typical of formats related to coff).

ar is considered a binary utility because archives of this sort are most often used as libraries
holding commonly needed subroutines.

ar creates an index to the symbols defined in relocatable object modules in the archive when you
specify the modifiers. Once created, this index is updated in the archive whenever ar makes a change
to its contents (save for the q update operation).  An archive with such an index speeds up linking
to the library, and allows routines in the library to call each other without regard to their
placement in the archive.

Ниже приведены несколько примеров в стиле вопросов и ответов, которые должны дать вам хорошее представление о том, как работает ar.

Q1. Как создать архив с помощью ar?

Это можно сделать с помощью параметра команды r, который, согласно справочной странице, позволяет «заменить существующие или вставить новые файлы в архив».

Так, например:

ar r test.a *.txt

Приведенная выше команда создает архив test.a, содержащий все файлы txt из текущего каталога.

Q2. Как вывести содержимое архива с помощью ar?

Это можно сделать с помощью параметра командной строки t. Так, например, запустив следующую команду:

ar t test.a

отображается список всех файлов, включенных в архив.

Q3. Как напрямую отображать содержимое файлов, включенных в архив?

Это можно сделать с помощью параметра команды p. Вот пример:

ar p test.a

Вот вывод, полученный этой командой:

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

Q4. Как добавить нового участника в архив?

Параметр команды r также позволяет это сделать. Например, чтобы добавить новый текстовый файл tes3.txt в существующий архив test.a, я использовал следующую команду:

ar r test.a test3.txt

Q5. Как удалить участника из архива?

Это же легко. Просто используйте опцию команды d и укажите имя удаляемого члена.

Например, чтобы удалить test3.txt, я использовал команду ar следующим образом:

ar d test.a test3.txt

На следующем снимке экрана показано, что файл был успешно удален:

Заключение

Команда ar — это небольшой удобный инструмент, когда вы хотите создавать или редактировать архивы. Он также используется в программировании для создания статических библиотек, на которые ссылаются программы. Мы только что поцарапали поверхность здесь. Для получения дополнительной информации об инструменте перейдите на его справочную страницу.