Сегодня в статье рассмотрим как пользоваться архиватором xz

Ранее мы рассмотрели Zip, 7-Zip в Linux. В этом руководстве мы поговорим ещё об одном архиваторе – xz.

Мы знаем, что Zip – это стандартный кроссплатформенный инструмент архивирования. Итак, зачем вообще использовать xz?

xz создает архивы гораздо меньшего размера, чем gzip, следовательно, мы можем считать xz лучшей заменой gzip. Мы проверим утверждение о меньших архивах в следующем разделе.

Недостатком xz является то, что он поставляется не со всеми дистрибутивами Linux. Но мы можем установить его с помощью утилиты yum или apt.

Установка xz в Linux

Чтобы установить xz в Debian/Ubuntu, используйте следующую команду:

sudo apt-get install xz-utils

Использование xz для отдельных файлов

Давайте используем xz для сжатия одного файла. Использование идентично gzip:

xz -v data.csv
  • -v позволяет xz отображать информацию о ходе выполнения.

xz имеет те же уровни сжатия 1-9, что и gzip. Сжатие по умолчанию равно 6.  Итак, вот как сжать файл с минимальным уровнем сжатия 1:

xz -v1 data.csv

Для распаковки одного файла используем следующий синтаксис:

xz -dv data.csv.xz

или

unxz data.csv.xz

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

Как и в случае с gzipxz сжимает только один файл. Вот почему мы должны использовать xz вместе с утилитой tar для сжатия нескольких файлов или целых каталогов. Вот пример сжатия файлов *.csv:

tar cJvf archive.tar.xz *.csv
  • Мы сжимаем все файлы с расширением csv в текущем каталоге в сжатый архив archive.tar.xz
  • Параметр J позволяет выполнять сжатие с помощью xz
  • Из-за опции v tar показывает, какие файлы добавляются в архив

Уровень сжатия по умолчанию 6. Как мы можем это изменить?

Здесь мы указываем минимальный уровень сжатия 1:

tar cvf archive.tar.xz --use-compress-program='xz -1' *.csv

Пожалуйста, обратите внимание, что мы удалили параметр J здесь, потому что –-use-compress-program уже устанавливает программу сжатия.

Распаковка архива tar с помощью xz:

tar xvf archive.tar.xz
  • Мы распаковываем файл archive.tar.xz и извлекаем его содержимое в текущий каталог
  • Из-за опции v tar показывает, какие файлы извлекаются из архива

Более быстрое сжатие с помощью многопоточности

В отличие от gzipxz напрямую поддерживает многопоточность, что ускоряет сжатие.

По умолчанию xz использует только один поток. Мы можем указать количество потоков с помощью параметра -T. 

Значение 0 указывает xz использовать один поток для каждого доступного ядра процессора:

xz -vT0 data.csv

Здесь мы будем использовать три потока:

xz -vT3 data.csv

Использование многопоточности с помощью tar

Ранее мы указывали уровень сжатия с помощью опции --use-compress-program . Теперь мы включаем многопоточность с помощью опции  --use-compress-program, задав количество потоков. Здесь мы снова используем один поток для каждого ядра процессора:

tar cvf archive.tar.xz --use-compress-program='xz -1T0' *.csv

Заключение

В этой статье мы узнали, как сжимать и распаковывать отдельные файлы с помощью архиватора xz.

[endtxt]

. . . .

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

5 1 голос
Рейтинг статьи

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам:

Продолжая пользование настоящим сайтом Вы выражаете своё согласие на обработку Ваших персональных данных (файлов cookie) с использованием трекеров "Google Analytics" и "Yandex.Metrics". Порядок обработки Ваших персональных данных, а также реализуемые требования к их защите, содержатся в Политике конфиденциальности.
Принять