atool: простая работа с архивами в Linux
========================================
При работе с архивами в командной строке Linux есть одно неудобство: у каждой программы-архиватора свой набор ключей, который необходимо помнить, либо постоянно заглядывать в man.
Эта проблема легко решается, если использовать утилиту atool, т.к. с ее помощью вы сможете работать с любым форматом архивов. Попросту говоря, atool это фронтенд для консольных архиваторов, предоставляющий единый интерфейс для работы с ними.
Программу можно скачать с официальной страницы
http://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 это очень простая и, в то же время, мощная программа. Разобравшись с ней один раз вы больше не будете испытывать проблем с запоминанием ключей для множества консольных архиваторов.