Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Полезные параметры архиватора 7zip - часть 1

Оригинал: Understanding 7z command switches - part I
Автор: Himanshu Arora
Дата публикации: 6 марта 2017 г.
Перевод: А.Панин
Дата перевода: 6 апреля 2017 г.

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

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

Примечание: в ходе выполнения различных операций с помощью архиватора 7zip будут использоваться файлы с именами, приведенными на расположенной ниже иллюстрации.

Включение в архив отдельных файлов

Архиватор 7zip позволяет включать в архивы отдельные файлы. Для использования этой возможности предназначен параметр -i.

Синтаксис:

-i[r[-|0]]{@файл|!шаблон}

Например, если вам нужно включить в архив лишь файлы с расширением .txt, вы можете воспользоваться следующей командой:

$ 7z a '-i!*.txt' include.7z

А это ее вывод:

Теперь вы можете воспользоваться следующей командой для того, чтобы убедиться в наличии в созданном архиве лишь файлов с расширением .txt:

$ 7z l include.7z

Вывод команды:

Из вывода очевидно, что в архив был добавлен лишь файл с именем testfile.txt.

Исключение отдельных файлов из рассмотрения архиватором

Если вам понадобится, вы можете исключить из рассмотрения архиватором файлы, которые вас не интересуют. Для этой цели предназначен параметр -x:

Синтаксис:

-x[r[-|0]]]{@файл|!шаблон}

Например, если вам нужно исключить из рассмотрения архиватором файл с именем abc.7z в процессе создания нового архива, вы можете воспользоваться следующей командой:

$ 7z a '-x!abc.7z' exclude.7z

А это вывод данной команды:

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

$ 7z l exclude.7z

Вывод команды:

Из вывода очевидно, что файл с именем abc.7z был исключен из нового архива.

Совет: предположим, что вам нужно исключить из рассмотрения архиватором все файлы с расширением .7z с именами, начинающимися с буквы t и, в то же время, добавить в архив все файлы с расширением .7z с именами, начинающимися с буквы a. Эта задача может быть решена путем совместного использования параметров -i и -x аналогичным образом:

$ 7z a '-x!t*.7z' '-i!a*.7z' combination.7z

Защита архива с помощью пароля

7zip также позволяет защитить ваш архив с помощью пароля. Для этого может использоваться параметр -p.

$ 7z a [имя-файла-архива] -p[пароль] -mhe=[on/off]

Примечание: параметр -mhe активирует (on) или деактивирует (off) механизм шифрования заголовка архива (который отключен по умолчанию).

Пример команды:

$ 7z a password.7z -pHTF -mhe=on

Думаю, очевидно, что при извлечении файлов из защищенного с помощью пароля архива архиватор попросит вас ввести пароль. Для извлечения файлов из защищенного подобным образом архива следует использовать "параметр-букву" e. А это пример команды для извлечения файлов из такого архива:

$ 7z e password.7z

Установка целевой директории

Архиватор позволяет вам извлекать файлы из архива в любую удобную директорию. Для этой цели используется параметр -o. Думаю, не стоит напоминать о том, что он будет работать лишь в случае использования "буквы-параметра" e или x.

$ 7z [e/x] [имя-файла-архива] -o[путь-к целевой-директории]

Предположим, к примеру, что вы выполнили следующую команду в текущей директории:

$ 7z e output.7z -ohow/to/forge

При этом значение параметра -o говорит о том, что файлы из архива будут размещены в директории ./how/to/forge.

Вывод команды:

На основе содержимого приведенной выше иллюстрации несложно сделать вывод о том, что из архива были извлечены все файлы. Но куда они были извлечены? Для того, чтобы убедиться в наличии извлеченных файлов в директории ./how/to/forge может использоваться команда ls -R.

Содержимое приведенной выше иллюстрации говорит о том, что все файлы из архива output.7z были действительно извлечены в директорию ./how/to/forge.

Создание многотомных архивов

С помощью архиватора 7zip могут создаваться, в том числе, многотомные архивы (состоящие из небольших по размеру файлов-подархивов). Это очень полезная возможность, позволяющая передавать файлы большого объема по сети или размещать их на нескольких флеш-накопителях с интерфейсом USB. Для использования этой возможности предусмотрен параметр -v. При работе с упомянутым параметром необходимо указывать размер подархивов.

Вы можете указывать размер подархивов в байтах (b), килобайтах (k), мегабайтах (m) и гигабайтах (g).

$ 7z a [имя-файла-архива] [файлы-добавляемые-в-архив] -v[размер-подархива1] -v[размер-подархива2] ...

Давайте попробуем разобраться с данной командой с помощью примера. Учтите, что мы будем использовать новую директорию для выполнения операций с задействованием параметра -v.

Это содержимое данной директории:

Теперь мы можем выполнить следующую команду для создания многотомного архива (с подархивами размером в 100 байт каждый):

$ 7z a volume.7z * -v100b

Вывод команды:

Для ознакомления со списком созданных подархивов может использоваться команда ls:

Как очевидно из приведенной выше иллюстрации, было создано четыре тома - volume.7z.001, volume.7z.002, volume.7z.003, volume.7z.004.

Примечание: вы можете извлечь файлы, открыв файл архива с расширением .7z.001. Но, для корректной распаковки архива все остальные подархивы также должны присутствовать в текущей директории.

Установка степени сжатия

7zip позволяет пользователям задавать степень сжатия их архивов. Данная функция доступна посредством параметра -m. 7zip поддерживает ограниченный номенклатуру степеней сжатия, а именно, степени -mx0, -mx1, -mx3, -mx5, -mx7 и -mx9.

Это краткое описание упомянутых степеней сжатия:

  • -mx0 - Вообще без сжатия - содержимое файлов просто копируется в архив.
  • -mx1 - Минимальные временные затраты с минимальным коэффициентом сжатия данных.
  • -mx3 - Лучший коэффициент сжатия данных, чем при использовании -mx1.
  • -mx5 - Используется по умолчанию (средний коэффициент сжатия данных).
  • -mx7 - Максимальный коэффициент сжатия данных.
  • -mx9 - Ультравысокий коэффициент сжатия данных.

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

$ 7z a [имя-файла-архива] [файлы-добавляемые-в-архив] -mx=[0,1,3,5,7,9]

Например, в определенной директории имеется набор файлов и директорий, которые мы пытаемся сжимать с различными степенями сжатия. Чтобы вам было понятнее, это команда для создания архива со степенью сжатия 0:

$ 7z a compression(-mx0).7z * -mx=0

По аналогии были исполнены команды для остальных степеней сжатия.

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

Вывод технической информации об архиве

При необходимости 7zip может выводить с помощью стандартного потока вывода техническую информацию об архиве - его тип, физический размер, размер заголовка и так далее. Для доступа к данной возможности предназначен параметр -slt. Данный параметр работает лишь в случае использования "параметра-буквы" l.

$ 7z l -slt [имя-файла-архива]

Например:

$ 7z l -slt abc.7z

Вывод команды:

Указание типа создаваемого архива

Если вам нужно создать архив определенного типа вместо архива 7zip (создаваемого по умолчанию), вы можете указать желаемый тип архива с помощью параметра t:

$ 7z a -t[тип-архива] [имя-файла-архива] [файлы-добавляемые-в-архив]

В следующем примере показана процедура создания обычного zip-архива:

$ 7z a -tzip howtoforge *

В результате будет создан файл howtoforge.zip. Для того, чтобы убедиться в корректности типа созданного архива можно воспользоваться командой file:

Да, файл howtoforge.zip действительно является zip-архивом. Вы можете создавать архивы других поддерживаемых 7zip типов аналогичным образом.

Заключение

Вы наверняка согласитесь с тем, что знание "букв-параметров" 7zip наряду с обычными параметрами позволит использовать данный инструмент максимально продуктивно. Но мы еще не до конца разобрались с параметрами - некоторые из них будут обсуждаться во второй статье серии.