atool: простая работа с архивами в Linux

Mar 24, 2016   #linux  #cli 

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

Эта проблема легко решается, если использовать утилиту atool, т.к. с ее помощью вы сможете работать с любым форматом архивов. Попросту говоря, atool это фронтенд для консольных архиваторов, предоставляющий единый интерфейс для работы с ними.

Программу можно скачать с официальной страницы www.nongnu.org/atool, либо установив с помощью пакетного менеджера вашего дистрибутива. Для debian используйте команду sudo apt install atool

Создание архивов

Для создания архива используется команда apack имя_архива.формат [список_файлов].

К примеру, команда apack backup.tgz first second third создаст в текущей директории архив backup.tgz и запакует в него файлы first, second и third. Причём формат создаваемого архива автоматически определяется из имени.

Создать несколько архивов можно вот так: apack -e -F .tar.gz dir1 dir2 dir3. В этом примере три директории dir будут упакованы в три разных архива. Ключ -e означает выполнять команду отдельно для каждого аргумента, ключ -F указывает формат создаваемых архивов. Подобным образом эти ключи действуют и в других командах, как будет показано ниже.

Просмотр архивов

Что бы просмотреть содержимое архива введите als имя_архива. Просмотреть содержимое нескольких архивов: als -e *.tgz.

Что бы вывести на экран содержимое файла, находящегося в архиве, можно использовать команду acat имя_архива имя_файла_в_архиве

Распаковка архивов

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

Если вам нужно распаковать архив в другую директорию, то можете её указать после ключа -X: aunpack -X /tmp archive.zip.

Распаковать несколько архивов можно указав ключ -e: aunpack -e *.tar.gz.

Перепаковка архивов

atool также можно использовать для перепаковки архивов в другой формат. Это делается командой arepack старый_архив новый_архив. При этом старый архив не удаляется.

Если вам необходимо перепаковать несколько архивов RAR в формат 7Z, то можно использовать следующую команду arepack -F .7z -e *.rar.

Сравнение архивов

Сравнить два архива можно командой adiff архив1 архив2.

atool использует программу diff для сравнения файлов.

Единая команда

Вместо всех этих команд возможно использовать команду atool с соответствующим ключем:

  • atool -l вместо als
  • atool -x вместо aunpack
  • atool -a вместо apack
  • atool -c вместо acat
  • atool -d вместо adiff
  • atool -r вместо arepack

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

Заключение

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