Библиотека сайта 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 наряду с обычными параметрами позволит использовать данный инструмент максимально продуктивно. Но мы еще не до конца разобрались с параметрами - некоторые из них будут обсуждаться во второй статье серии.