Использование архиватора xz в Linux

Сегодня в статье рассмотрим как пользоваться архиватором 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]




. . . .




2023-02-04T00:10:40
Arhivators