Существует множество способов и инструментов, которые можно использовать для сжатия файлов: либо для уменьшения занимаемого ими места, либо для отправки их в виде пакета контакту. Из них 7-Zip занял первое место для большинства пользователей благодаря уникальному сочетанию высокой производительности и уровня сжатия при нулевой стоимости.
Все формы сжатия в этом формате оказываются более сложными, чем подход, который мы увидим здесь. По крайней мере, для большинства пользователей, которые используют сжатие, чтобы упаковать все содержимое папки и ее подпапок в сжатые «пакеты».
Итак, давайте посмотрим, как мы можем объединить поддержку псевдонимов в Bash с версией 7z для командной строки, чтобы создавать пакеты наших файлов с помощью простой команды.
Установить p7zip
Как самый популярный инструмент сжатия, 7-Zip, скорее всего, уже установлен в вашем дистрибутиве Linux. Чтобы проверить это, попробуйте команду «7z» в терминале. Если он не установлен, вы можете установить его в дистрибутивах на базе Ubuntu/Debian с помощью команды:
sudo apt-get install p7zip-full
Файл псевдонимов Ceate Bash
Bash псевдонимы позволяет отображать команды или даже последовательности из нескольких команд в отдельные слова.
Contents
Установить p7zip
вить псевдонимы в 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
к в каталоге в упакованный пакет 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» — это псевдоним самого высокого уровня сжатия из предыдущих, а «имя_архива» — это имя пакета сжатых файлов. Вы можете заменить «75» одним из других псевдонимов (от 75 до 70) для постепенного уменьшения, но более быстрого сжатия, и использовать любое имя для конечного файла.
Если у вас есть вопросы, дайте нам знать в комментариях ниже.