Сегодня в статье рассмотрим как пользоваться архиватором 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
Как и в случае с gzip
, xz
сжимает только один файл. Вот почему мы должны использовать 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
показывает, какие файлы извлекаются из архива
Более быстрое сжатие с помощью многопоточности
В отличие от gzip
, xz
напрямую поддерживает многопоточность, что ускоряет сжатие.
По умолчанию 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]
. . . .
- Тест скорости дисков в Linux
- Как запустить команду в фоне в Linux
- Ошибка несоответствие размеров GPT PMBR
- nginx: [warn] protocol options redefined
- Как включить поддержку linux в windows 11