- Распаковка архива tar.xz
- 4 ответа 4
- Как распаковать (разархивировать) файл tar.xz
- Извлечение файла tar.xz
- Извлечение определенных файлов из файла tar.xz
- Извлечение файла tar.xz из stdin
- Листинг содержимого файла tar.xz
- Выводы
- Как распаковать архив XZ
- Что это за XZ файлы?
- Поддержка формата XZ в команде tar
- Поддержка XZ в командах gzip/gunzip на macOS
- xz-utils на macOS
- Ссылки
- 🏘 Как извлечь файлы .xz в Linux – CentOS / Ubuntu / Debian
- Установите пакет xz-utils в CentOS / Ubuntu / Debian
- Извлечение файлов .xz в Linux
Распаковка архива tar.xz
Скорее всего tar и есть, но совсем не обязательно. Чтобы быть уверенным стоит посмотреть содержимое. По первым символам сигнатуры чаще всего можно определить формат. Т.к. это может быть произвольный файл с любыми данными и совсем не обязательно архив.
4 ответа 4
xz — это файловый формат сжатия данных с помощью алгоритма LZMA. Чтобы использовать на Убунту, надо установить xz-utils.
sudo apt-get install xz-utils
Мне казалось, там уже все для этого есть. По крайней мере, в FreeBSD это можно делать без установки дополнительного ПО.
В дальнейшем, чтобы не заботится о том, какой тип архива, можно поставить утилиту atool:
$ sudo apt-get install atool
Для распаковки (покажу на примерах):
$ aunpack a.7z $ aunpack a.tag.gz $ aunpack a.zip
$ apack a.7z file1.txt file2 dir1
Для просмотра содержимого:
есть и универсальное решение.
во всех популярных дистрибутивах операционной системы gnu/linux есть пакет dtrx («do the right extraction»). при его установке по зависимостям будут установлены и недостающие в системе распаковщики.
программа самостоятельно определяет, что находится внутри файла, и умеет распаковывать tar, zip (включая самораспаковывающиеся .exe), cpio, rpm, deb, gem, 7z, cab, rar, файлы, созданные InstallShield, сжатые gzip, bzip2, lzma и compress.
при обнаружении внутри архива других архивов/сжатых файлов, программа интерактивно предложит распаковать и их.
Как распаковать (разархивировать) файл tar.xz
Команда tar позволяет создавать и извлекать архивы tar. Он поддерживает широкий спектр программ сжатия, таких как gzip, bzip2, lzip, lzma, lzop, xz и compress.
Xz — популярный алгоритм сжатия файлов на основе алгоритма LZMA. По соглашению имя tar-архива, сжатого с помощью xz, оканчивается на .tar.xz или .txz .
В этой статье объясняется, как использовать команду tar для извлечения (или распаковки) архивов .tar.xz или .txz .
Извлечение файла tar.xz
Утилита tar предустановлена по умолчанию во всех дистрибутивах Linux и macOS.
Чтобы извлечь файл tar.xz, вызовите команду tar с параметром —extract ( -x ) и укажите имя файла архива после параметра -f :
tar автоматически определяет тип сжатия и извлекает архив. Эту же команду можно использовать для извлечения архивов tar, сжатых с помощью других алгоритмов, таких как .tar.gz или .tar.bz2 .
Если командная строка вам не нравится, вы можете использовать файловый менеджер графического интерфейса. Чтобы распаковать (разархивировать) файл tar.xz, просто щелкните правой кнопкой мыши файл, который хотите извлечь, и выберите «Извлечь». Пользователям Windows необходим инструмент под названием 7zip для извлечения файлов tar.xz.
Для более подробного вывода используйте параметр -v . Эта опция указывает tar отображать имена файлов, извлекаемых на терминале.
По умолчанию tar извлекает содержимое архива в текущий рабочий каталог . Чтобы извлечь архивные файлы в определенный каталог, используйте —directory ( -C ).
В следующем примере показано, как извлечь содержимое архива в /home/linuxize/files :
tar -xf archive.tar.xz -C /home/linuxize/files
Извлечение определенных файлов из файла tar.xz
Чтобы извлечь определенный файл (ы) из файла tar.xz, добавьте разделенный пробелами список имен файлов, которые нужно извлечь, после имени архива:
tar -xf archive.tar.xz file1 file2
При извлечении файлов вы должны указать их точные имена, включая путь, как они печатаются при вызове tar с параметром —list ( -t ).
Извлечение одного или нескольких каталогов из архива аналогично извлечению нескольких файлов:
tar -xf archive.tar.xz dir1 dir2
Если вы попытаетесь извлечь файл, которого нет в архиве, появится сообщение об ошибке, подобное приведенному ниже:
tar -xf archive.tar.xz README
tar: README: Not found in archive tar: Exiting with failure status due to previous errors
Параметр —wildcards позволяет извлекать файлы из файла tar.xz на основе шаблона подстановки. Шаблон должен быть заключен в кавычки, чтобы оболочка не могла его интерпретировать.
Например, чтобы извлечь только файлы, имена которых заканчиваются на .png , вы должны использовать:
tar -xf archive.tar.xz --wildcards '*.png'
Извлечение файла tar.xz из stdin
При извлечении сжатого файла tar.xz путем чтения архива со стандартного ввода (обычно через конвейер) вы должны указать параметр распаковки. Параметр -J сообщает tar что файл сжат с помощью xz.
В приведенном ниже примере мы загружаем ядро Linux с помощью команды wget и перенаправляем его вывод в команду tar :
wget -c https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.5.3.tar.xz -O - | sudo tar -xj
Если вы не укажете вариант декомпрессии, tar покажет вам, какой вариант вам следует использовать:
tar: Archive is compressed. Use -J option tar: Error is not recoverable: exiting now
Листинг содержимого файла tar.xz
Чтобы вывести список содержимого файла tar.xz, используйте параметр —list ( -t ):
Результат будет выглядеть примерно так:
Если вы добавите параметр —verbose ( -v ), tar выведет дополнительную информацию, такую как владелец, размер файла, временная метка и т. Д.
-rw-r--r-- linuxize/users 0 2020-02-15 01:19 file1 -rw-r--r-- linuxize/users 0 2020-02-15 01:19 file2 -rw-r--r-- linuxize/users 0 2020-02-15 01:19 file3
Выводы
Файл tar.xz представляет собой архив Tar, сжатый с помощью xz. Чтобы извлечь файл tar.xz, используйте команду tar -xf , за которой следует имя архива.
Если у вас есть вопросы, оставьте комментарий ниже.
Как распаковать архив XZ
XZ utils
Мне уже не раз попадались архивы XZ – в последний раз при скачивании Kali Linux. В общем-то, ничего сложного в работе с ними не должно быть, но в некоторых операционках (macOS, я на тебя смотрю!) всё не совсем очевидно – так что я решил исследовать и задокументировать этот вопрос.
Что это за XZ файлы?
XZ это современный алгоритм сжатия без потери данных, даже более мощный, чем известные в Unix/Linux кругах gzip и bzip2. Оказывается, многие Linux дистрибутивы уже давно используют этот формат для компрессии данных в своих пакетах или для сжатия готовых ISO образов. XZ имеет открытый исходный код и распространяется в рамках проекта Tukaani Project – XZ.
Поддержка формата XZ в команде tar
Современные Linux дистрибутивы (уж точно Ubuntu 19.x и CentOS 7.x, которые я проверил сегодня) уже имеют пакет xz utils установленным по умолчанию, так что команда tar запросто распаковывает архивы XZ.
Если в вашей системе пакет xz-utils ещё не установлен, то в Ubuntu/Debian это можно исправить таким образом:
а в CentOS/Fedora/RedHat этот пакет ставится вот так:
Поддержка XZ в командах gzip/gunzip на macOS
Хотя tar в macOS и не поддерживает формата XZ:
[email protected]:~/Downloads $ tar xzvf kali-linux-2020.1-rpi3-nexmon-64.img.xz tar: Error opening archive: Unrecognized archive format
… для распаковки прекрасно подойдёт gunzip (тоже есть в macOS):
[email protected]:~/Downloads $ ls -al kali-linux-2020* -rw-r--r--@ 1 greys staff 259647 30 Jan 22:57 kali-linux-2020-1.png -rw-r--r--@ 1 greys staff 1048328860 30 Jan 23:06 kali-linux-2020.1-rpi3-nexmon-64.img.xz [email protected]:~/Downloads $ gunzip kali-linux-2020.1-rpi3-nexmon-64.img.xz [email protected]:~/Downloads $ ls -ald kali-linux-2020.1-rpi3-nexmon-64.img -rw-r--r-- 1 greys staff 6999999488 30 Jan 23:06 kali-linux-2020.1-rpi3-nexmon-64.img
xz-utils на macOS
Если уж прям очень надо именно пакет XZ utils, то поставить его на macOS можно с помощью Homebrew:
… и тогда появляются сражу же несколько команд XZ:
xz xzcat xzcmp xzdec xzdiff xzegrep xzfgrep xzgrep xzless xzmore
Ссылки
🏘 Как извлечь файлы .xz в Linux – CentOS / Ubuntu / Debian
Как я могу извлечь файлы .tar.xz или .xz в моей системе Linux?
xz – программа сжатия без потерь и формат файла, который включает алгоритмы сжатия LZMA / LZMA2. Формат XZ является форматом сжатия одного файла и не предлагает возможности архивирования.
В этом руководстве мы увидим, как извлечь файлы .xz в Linux.
Процесс будет включать установку необходимых утилит и демонстрирует использование на примере.
Чтобы извлечь файлы .xz в Linux – CenOS / Ubuntu, нам нужен пакет xz-utils, установленный в системе, над которой мы работаем.
Установите пакет xz-utils в CentOS / Ubuntu / Debian
Установите пакет xz-utils, используя соответствующий менеджер пакетов для вашего Linux и соответствующее имя пакета.
--- Ubuntu / Debian ---- $ sudo apt-get install xz-utils --- CentOS / Fedora / RHEL --- $ yum install xz
Извлечение файлов .xz в Linux
После установки пакета распакуйте ваш файл с помощью команды:
или –decompress опция xz:
Здесь поддерживаются cледующие параметры:
Usage: unxz [OPTION]. [FILE]. Compress or decompress FILEs in the .xz format. -z, --compress force compression -d, --decompress, --uncompress 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, --to-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.
В моем случае у меня есть файл fedora-coreos-30.20190725.0-openstack.qcow2.xz. Чтобы извлечь его, я буду использовать:
$ unxz -v fedora-coreos-30.20190725.0-openstack.qcow2.xz fedora-coreos-30.20190725.0-openstack.qcow2.xz (1/1) 100 % 399.9 MiB / 1,555.3 MiB = 0.257 85 MiB/s 0:18
Файл .xz автоматически удаляется после распаковки.