Есть много способов и инструментов, которые вы можете использовать для сжатия файлов: либо для уменьшения занимаемого ими места, либо для отправки их контакту в виде пакета. Среди них 7-Zip занял первое место среди большинства пользователей благодаря уникальному сочетанию высокой производительности и уровней сжатия при нулевой стоимости.
Все формы сжатия в этом формате оказываются более сложными, чем подход, который мы увидим здесь. По крайней мере, для большинства пользователей, которые используют сжатие для упаковки всего в папке и ее подпапках в сжатые «пакеты».
Итак, давайте посмотрим, как мы можем объединить поддержку псевдонимов Bash с версией 7z для командной строки, чтобы создавать пакеты наших файлов с помощью простой команды.
Установите p7zip
Как наиболее популярный инструмент сжатия, 7-Zip, скорее всего, уже установлен в вашем дистрибутиве Linux. Чтобы проверить это, попробуйте команду «7z» в терминале. Если он не установлен, вы можете установить его в дистрибутивах на основе Ubuntu / Debian с помощью команды:
sudo apt-get install p7zip-full
Файл псевдонимов Ceate Bash
Псевдонимы Bash позволяют отображать команды или даже последовательности из нескольких команд в отдельные слова. Самый простой способ добавить псевдонимы в Bash — это вставить их в конец файла «~ / .bashrc». Для удобства и организации их лучше всего поместить в отдельный файл.
Вероятно, этот файл уже существует, и в конфигурации Bash есть ссылка на него. Проверьте, есть ли это, открыв «~ / .bashrc» в вашем любимом текстовом редакторе и найдите:
if [-f ~/.bash_aliases]; then . ~/.bash_aliases Fi
Если нет, добавьте его в конец файла после всего, что уже есть.
Имейте под рукой информацию о 7-Zip
Вы можете запустить 7-Zip в терминале, чтобы просмотреть краткое изложение его параметров командной строки. Для получения более полной информации посетите это руководство пользователя или справочную страницу программы с:
man 7z
Это поможет вам в настройке ваших собственных команд сжатия. Скорее всего, те, которые мы здесь увидим, покроют и ваши потребности. Таким образом, вы можете скопировать и вставить их в свой собственный файл .bash_aliases.
Создайте псевдоним сверхсжатия
Откройте файл «~ / .bash_aliases» в вашем любимом текстовом редакторе — мы используем nano. Входить:
alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on'
alias 75
говорит, что мы хотим создать команду «75», которую мы с этого момента будем использовать для сжатия всех файлов и папок в каталоге в упакованный пакет 7-Zip. Причина, по которой мы выбрали это своеобразное название для нашей команды, заключается в том, что его легко вспомнить как сокращенную версию «уровня сжатия 7zip 5».
7z
— это сама команда сжатия. В a
следующий за ним означает «мы хотим добавить файлы в новый сжатый пакет». -r
указывает, что p7zip не должен быть «ограничен папкой, в которой он запущен», но должен включать окончательный сжатый пакет и все вложенные папки в нем со всем его содержимым.
-t7z -m0=lzma2
указывает, что мы хотим создать пакеты 7zip, которые в основном используют алгоритм LZMA2 для сжатия файлов. Обычно это дает наилучшее сжатие для большинства типов файлов.
-mx=9 -myx=9
соответствуют уровню сжатия и «количеству усилий», которые 7-Zip приложит для анализа содержимого файлов, которые нужно сжать, чтобы найти лучшую стратегию сжатия. Чем выше их значения, тем больше компрессия и меньше получаемый пучок.
Наконец-то, -mqs=on -ms=on
определяет, что мы хотим «твердого» сжатия. Это означает, что p7zip сжимает похожие файлы как отдельные фрагменты данных, достигая еще лучших результатов. Причина, по которой они существуют в качестве опции, которую вы можете отключить, заключается в том, что они полезны, но также имеют два недостатка. Они увеличивают время сжатия и делают невозможным распаковку независимых файлов из окончательного пакета, создаваемого компрессором. С твердым сжатием вы не можете сделать эквивалент «извлечения одного файла из zip-архива», и вам придется распаковать весь пакет, чтобы получить доступ к его содержимому.
Воспроизвести и «урезать» псевдоним
Мы начали с команды, которая обеспечивает максимально возможное сжатие, так что вместо того, чтобы расширять его с помощью большего количества элементов, мы можем двигаться назад, удаляя параметры и уменьшая установленные значения.
Начните с копирования существующей команды еще пять раз, помещая каждую команду в отдельную строку. Оставьте первую строку как есть, так как она уже обеспечивает максимально возможный уровень сжатия. Измените остальные по порядку, удалив дополнительные параметры и уменьшив уровни сжатия, как показано ниже. Не забудьте изменить их псевдонимы, чтобы они соответствовали более низким уровням сжатия.
Вы всегда можете скопировать следующее и вместо этого вставить в свой ~ / .bash_aliases.
alias 75='7z a -r -t7z -m0=lzma2 -mx=9 -myx=9 -mqs=on -ms=on' alias 74='7z a -r -t7z -m0=lzma2 -mx=9' alias 73='7z a -r -t7z -m0=lzma2 -mx=7' alias 72='7z a -r -t7z -m0=lzma2 -mx=5' alias 71= '7z a -r -t7z -m0=lzma2 -mx=3' alias 70='7z a -r -t7z -m0=lzma2 -mx=1'
Активируйте свои псевдонимы
Сохраните изменения в файле и вернитесь в терминал. Чтобы загрузить и активировать ваши новые псевдонимы, используйте команду:
source ~/.bashrc
Ваши новые команды сжатия активны. P7zip по умолчанию работает со всеми файлами в каталоге, в котором он запускается, если вы не укажете «что вы хотите сжать» в качестве параметра. Итак, все, что вам нужно сделать с этого момента, если вы хотите сжать содержимое папки в пакет 7z, — это ввести команду:
75 archive_name
Здесь «75» — это псевдоним для наивысшего уровня сжатия из предыдущих, а «archive_name» — это имя пакета сжатого файла. Вы можете заменить «75» одним из других псевдонимов (от 75 до 70) для постепенного уменьшения, но более быстрого сжатия, и использовать любое имя для окончательного файла.
Если у вас есть какие-либо вопросы, дайте нам знать в комментариях ниже.