|
|||||||
Как упаковывать и распаковывать архивы *.xz (без tar и вместе с ним)
Время создания: 21.11.2022 14:00
Автор: xintrea
Текстовые метки: linux, архив, упаковка, распаковка, xz, tar, unxz, tar.xz, архиватор, формат, расширение, команда, опции
Раздел: Компьютер - Linux - Архиваторы
Запись: xintrea/mytetra_syncro/master/base/1669028406e6fdq9r65e/text.html на raw.github.com
|
|||||||
|
|||||||
В состав современных Linux-дистрибутивов входит пакет xz-utils, который содержит архиватор формата xz. Данный формат может использоваться как совместно с архиватором tar (получаются файлы с расширением *.tar.xz), так и отдельно, тогда файлы архивов именуются с расширением *.xz. Формат xz- это очень компактный формат, имеющий максимально высокую степень сжатия, даже по меркам 2022 года. По сравнению с обычным zip, архивы xz могут занимать в ~3 раза меньше места. Бинарник архиватора формата *.xz так и называется xz. По неизвестной причине, в Debian-based дистрибутивах Linux делают еще и линк unxz, ссылающийся на бинарник xz. По логике вещей, unxz должен уметь только разархивировать *.xz-файлы, но на деле "распаковщик" unxz может так же и упаковывать файлы. Похоже, что бинарник xz умеет понимать, под каким именем (линком) его запустили, и в случае если он запущен как unxz и никаких опций не указано, он по умолчанию запускает режим распаковки (см. ниже). В любом случае программа xz умеет как упаковывать, так и распаковывать файлы. Опции командной строки следующие: $ xz --help Usage: xz [OPTION]... [FILE]... Compress or decompress FILEs in the .xz format. -z, --compress force compression -d, --decompress force decompression -t, --test test compressed file integrity -l, --list list information about .xz files -k, --keep keep (don't delete) input files -f, --force force overwrite of output file and (de)compress links -c, --stdout write to standard output and don't delete input files -0 ... -9 compression preset; default is 6; take compressor *and* decompressor memory usage into account before using 7-9! -e, --extreme try to improve compression ratio by using more CPU time; does not affect decompressor memory requirements -T, --threads=NUM use at most NUM threads; the default is 1; set to 0 to use as many threads as there are processor cores -q, --quiet suppress warnings; specify twice to suppress errors too -v, --verbose be verbose; specify twice for even more verbose -h, --help display this short help and exit -H, --long-help display the long help (lists also the advanced options) -V, --version display the version number and exit With no FILE, or when FILE is -, read standard input. Архиватор xz по своему принципу работы устроен так же, как и архиватор gzip (поддерживающий формат gz). А это значит, что xz обладает следующими особенностями:
Если нужно дать однозначную команду упаковки или распаковки файла, можно воспользоваться опциями --compress или --decompress. Однако нужно помнить, что и при их использовании исходный файл будет удаляться. Чтобы исходные файлы не удалялись, можно воспользоваться опцией --keep. Примеры 1. Упаковать файл file.txt: xz file.txt или xz --compress file.txt Получится упакованный файл file.txt.xz. Исходный файл file.txt будет удален. 2. Распаковать файл file.txt.xz: unxz file.txt.xz или xz --decompress file.txt.xz Получится файл file.txt. Исходный архив file.txt.xz будет удален. 3. Упаковать все файлы в текущем каталоге и всех подкаталогах: tar -Jcvf allfiles.tar.xz * Исходные файлы удаляться не будут. Хинт! Архиватор xz умеет использовать многопоточность при упаковке. Для использования одного потока на одно физическое ядро, можно воспользоваться опцией -T0. Чтобы tar передал xz опцию использования многопоточности для упаковки файлов, команда упаковки будет выглядеть так: tar -cvf allfiles.tar.xz --use-compress-program='xz -T0' * Чтобы видеть информацию о ходе упаковки, можно пользоваться опцией -v: tar -cvf allfiles.tar.xz --use-compress-program='xz -vT0' * 4. Распаковать архив формата *.tar.xz: tar -Jxvf allfiles.tar.xz Исходный архив allfiles.tar.xz удален не будет. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|