7-Zip — свободный файловый архиватор с высокой степенью сжатия данных благодаря формату 7z с компрессией LZMA.

Кроме формата 7z поддерживает также ZIP, GZIP, BZIP2 и TAR. Может распаковать множество других форматов, например CAB, CHM, DEB, ISO, LZMA, MSI, RAR и другие.

Формат 7z достаточно популярен среди архивов, поэтому имеет смысл иметь поддержку 7z в системе, а также создавать свои архивы в виде 7z формата, ибо сжатие с помощью 7z на 30-50% лучше, чем сжатие с помощью ZIP.

Не стоит использовать 7-Zip в целях Linux/Unix backup, потому как 7-zip не сохраняет информацию о владельцах и правах файлов (owner/group) - для этого следует использовать TAR.

В Ubuntu можно использовать консольный порт 7-Zip под POSIX системы: p7zip.

Установка

Чтобы 7-Zip был доступен в Ubuntu, установите следующие пакеты при помощи терминала:

sudo apt-get install p7zip-rar p7zip-full

Установить 7-Zip также можно с помощью Центра приложений Ubuntu установив два нижеописанных пакета:

  • p7zip-rar - Модуль для p7zip, даёт возможность распаковывать RAR-архивы.
  • p7zip-full - Консольный порт 7-Zip под POSIX системы.

Использование

Менеджер архивов File Roller

С помощью менеджера архивов FileRoller можно просматривать 7z архивы, для этого достаточно дважды кликнуть на *.7z файле в Nautilus.

Для распаковки необходимо вызвать контекстное меню и выбрать пункт «Распаковать сюда» в Nautilus.

Для создания архивов:

  • Можно открыть Менеджер архивов и перетащить в его окно требующиеся файлы/директории: Менеджер архивов предложит создать новый архив. Во время сохранения будет вожможность выбрать формат архива, т.е. 7z.
  • Можно выбрать файлы/директории в nautilus'е и вызвать пункт контекстного меню «Сжать». В открывшемся окне в настройках имени файла необходимо выбрать расширение .7z

Консольный порт 7-Zip

Пакет p7zip-full содержит утилиту /usr/bin/7z

Её можно использовать для создания 7-Zip архивов.

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

Для создания архива используется команда-параметр a

Для упаковки в архив arch.7z файлов file01.foo и file02.foo в директории /home/user/TheDir, выполните в терминале

cd /home/user/TheDir/
7z a arch.7z file01.foo file02.foo

Для упаковки в архив arch.7z всего содержимого директории /home/user/TheDir, выполните в терминале

cd /home/user/TheDir/
7z a arch.7z

Файл arch.7z будет создаваться в текущей директории.
Можно использовать абсолютный/относительный путь, например:

cd /home/user/TheDir/
7z a /home/user/arch.7z

или

cd /home/user/TheDir/
7z a ../arch.7z

В случае архивирования директории не следует писать ./TheDir/*, поскольку файлы/директории вроде ./TheDir/.profile не попадут в архив.

Дополнительные опции архивирования

Опция -t определяет формат архива на выходе.
Например -t7z устанавливает 7z формат (он же используется по умолчанию).
Также можно определить иной формат архива: zip, gzip, bzip2 или tar.

Опция -mx определяет метод компрессии, и может быть например следующих значений:

  • -mx0 - Без компрессии
  • -mx1 - Очень быстрая компрессия
  • -mx3 - Быстрая компрессия
  • -mx5 - Нормальная компрессия
  • -mx7 - Максимальная компрессия
  • -mx9 - Ультра компрессия

Например:

7z a -t7z -mx5 arch.7z ./TheDir

Также можно разделять архив на тома с помощью опции -v (b - байты, k - килобайты, m - мегобайты, g - гигабайты):

7z a -t7z -mx7 -v256k arch.7z ./TheDir 
7z a -t7z -mx7 -v16m arch.7z ./TheDir 
7z a -t7z -mx7 -v2g arch.7z ./TheDir 

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

Если во время процедуры архивации вы решите, что она занимает слишком много времени, можно остановить выполнение утилиты нажав Сtrl+С в терминале. Однако не забудьте удалить частично сгенерированный выходной файл. Если просто его оставить, а затем попытаться создать архив заново (с другой опцией -m например), утилита 7z отругается на ошибку: «не поддерживается архив». Ошибка возникает, потому что 7z пытается добавить файлы в существующий архив, а последний оказывается «битым».

Для большей настройки процесса архивирования можно использовать опцию -m (-mfb -md -ms), например:

7z a -t7z -mx9 -mfb=64 -md=32m -ms=on arch.7z ./TheDir
  • -mx9 - уровень компрессии (Ультра)
  • -mfb=64 - количество байт в конце (для LZMA алгоритма)
  • -md=32m - размер словаря 32 мегабайта
  • -ms=on - непрерывный архив

Если архив необходимо защитить, тогда наберите в терминале:

7z a -mhe=on -pqwerty123 arch.7z

Здесь опция опция -pqwerty123 задаёт пароль «qwerty123», а опция -mhe=on разрешает криптование заголовков.

Во всем многообразии опций как всегда поможет разобраться

7z --help
man 7z

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

Для распаковки используется команда x

Для извлечения содержимого из архива arch.7z в текущую директорию, выполните в терминале:

7z x arch.7z

Если архив разбит на множество частей, используйте имя с наименьшим номером тома:

7z x arch.7z.001

Если вы хотите извлечь архив не в текущей диретории, вы можете явно задать целевую директорию с помощью опции -o

7z x arch.7z -o/home/user/Desktop/TheExtractionDir

Просмотр содержимого архива

Для просмотра внутренностей используется команда l

7z l arch.7z
7z l -slt arch.7z

Ссылки