Что такое расширение файла XZ? Xz — сила сжатия LZMA уже в твоей консоли Как распаковать xz архив в linux.

Вариант «двойной клик, распаковать» не плох. Но не универсален. Ну и не так интересен, как куча способов сделать это в консоли! Поэтому, очередная заметка в стиле «Все способы сделать это».

Пожалуй, лучший выбор для архива, который вы хотите выложить на всеобщее скачивание — zip -архив. Инструменты для его распаковки есть практически на всех ОС «из коробки». Даже в той же Windows есть странноватый, но всё же разархиватор zip. Если же вы используете Linux / FreeBSD / MacOS, то ваш выбор — unzip:

Unzip file.zip

Вообще, понятно, почему ZIP стал популярен. Он использует свободный от патентов алгоритм Deflate, который уже давно стал чуть ли не стандартом для сжатия: описан в RFC 1951, да и многие его используют (тот же gzip и формат хранения изображений png, все перечислять не буду — ZIP действительно велик!).

Плюсом ко всему довольно сильно в своё время стал известен автор этого формата — Фил Катц. На заре пользовательского интернета, во времена BBS-ок он оптимизировал формат ARC, который использовался для сжатия, но авторам последнего это не понравилось. Как и принято на пресловутом западе, была судебная тяжба, в рамках которой Катц себя проявил как славный малый. Можно даже посмотреть документалку «Compression», где описывается противостояние.

Так что нельзя просто сделать хороший алгоритм сжатия. Нужно ещё и пропиарить всё это на скандале.

Хотя, не буду юродствовать. Большой вклад в IT, в нашу реальность. Жаль, что Фил не получил достаточно славы, чтобы не гасить всё в алкоголе. Хотя, может ему так было лучше. Ушёл он из жизни в 2000м-ом году (37 лет). Земля пухом, друг!

Вторым форматом в моём личном «топе» я бы поставил RAR . Не потому что я часто его вижу, а потому что запоминается это. Каждый раз я иду и ставлю unrar.

Для Ubuntu/Debian/Mint и других с apt это:

$ sudo apt install unrar

Во FreeBSD похоже:

% sudo pkg install unrar

И для MacOS:

$ brew install unrar

Либо можно сходить в App Store и скачать The Unarchiver

Также он поддерживает такие форматы как ZIP, 7z, LHA, LZH, Tar, gzip, bzip2, StuffIt, StuffIt X, DiskDoubler, Compact Pro, PackIt, cpio, XAR, RPM, LZMA, XZ, Z, CAB, MSI, NSIS, ALZip, ARJ, Ace, Zoo, ADF, DMS, LZX, PowerPacker, NSA, SAR, NDS, Split файлы… Ну это так, к слову.

У WinRAR есть сборки и под Linux и под Бисти, MacOS также не обошли — так что, если привыкли/удобнее — также можно. И не мудрено — существует с 1993-го.

Хоть rar и является разработкой нашего соотечественника (родился в СССР), а сам при этом — суровый челябинский программист… Но «топить за» этот момент я не буду — всё же давайте быть гражданами мира! Но он ещё и создатель FAR-а… Евгений Рошал — знакомьтесь!

Короче, всё классно, но рарчик — проприетарчик. Жмёт неплохо, равно как и его создатель (во всяком случае его брат). Поэтому его нет «из коробки» на различных системах, но виндузятники уже сильно на этот формат подсели — придётся временами видеть.

На почётном 3-ем месте — семейство tar -архивов. Именно tar — архиватор. Он не сжимает, а архивирует файл за файлом. Создаёт архив! Не знаю, как ещё сильнее указать на отличие… В общем, представим архивариуса. Он складываете документы один к другому, чтобы в итоге получился шкаф, в котором вся информация по какой-то теме. Шкаф при этом больше, чем просто набор файлов. И в плане своей значимости, и в плане занимаемого места. Так вот, tar — архивариус. Он сделает ещё больший файл, в котором есть подборка других файлов.

Тут речь про алгоритм, а не про сектора жёсткого диска (знаю, зануда, ты уже хотел про это написать… но я тоже зануда;-)).

А уже вот этот файл мы можем сжать. Не знаю, как вам, а мне это представляется прекрасной иллюстрацией одного из принципов Unix:

Пишите программы, которые делают что-то одно и делают это хорошо.

Так и тут! Ладно, кто понял — тот понял, кто не понял — тот простит…

И сжать теперь можно любым универсальным алгоритмом сжатия (есть ещё специализированные под конкретный тип данных)!

И тут у нас уже идёт поддержка около 180 форматов… «Из коробки» не все, конечно. Самые распространённые:

Самый распространённый вариант создать сжатый tar-архив

tar -czf file.tar.gz source.c source.h

Распаковать — соответственно:

tar -x zf file.tar.gz

Create/Extract — всё логично! И это один из самых распространённых форматов дистрибуции «пакетов» в Unix. Та же слака (слава великому Патрику) использует её для скачивания и установки пакетов. Прямо в корень, прямо в «душу»!

В общем, используйте tar, слушайте маму!

Целая история, инфраструктуры, эпохи, судьбы людей… А всего 3 типа архивов.

Ну и для тех, кто хотел разархивировать какой-то хитрый архив, но залип на этой статье, вот список:

gz (gzip) файл, распакуем его командой:

Аналогично с BZ2 — разархивируем с помощью:

bunzip2 file.bz2

Могут встретиться и файлы XZ . Разархивируем командой

архивируем

xz --decompress file.xz

XZ умеет разархивировать файлы и LZMA формата:

xz --format=lzma --decompress file.lz # для.lz файлов

Для 7Z -файлов используем:

Нужно установить p7zip до этого (sudo apt-get install p7zip).

Возможно, файл к Вам попал без расширение или с неправильным, тогда воспользуемся командой file , чтобы узнать формат файла:

file file.unknown

Например:

$ file server.jjj server.jjj: Zip archive data, at least v2.0 to extract

Узнав формат, всегда можно обратиться в гугл и узнать, как его распаковать. Либо обратиться к документации/автору и написать распаковщик самому.

Уверен, что упустил ещё over 100 форматов, которые «все используют». Пишите — добавлю!

Многие наверное уже знают про утилитку для компрессии/декомпрессии xz . Но еще больше не знают. Поэтому написал этот ознакомительный топик.

Xz - формат сжатия данных, наряду с gzip, bzip2 вошедший в gnu-шные приложения.
Использует алгоритм LZMA , тот же что и в 7z, а это значит что можно сильнее сжать многие виды данных, типа текста, бинарные еще не сжатые данные по сравнению с стандартными, упомянутыми выше.
xz используется в новом rpm 4.7.2 для компрессии архивов.cpio в rpm-пакетах (используется с Fedora 12).
В ArchLinux вообще используется.tar.xz в качестве пакета.
В GNU tar появились опции -J --lzma, которые исполняют туже роль что и -z для gzip, -j для bzip2

Плюсы:
Высокая степень сжатия

Минусы:
большое потребление ресурсов:
cpu time (и собственно времени сжатия)
памяти (настраивается, но все равно больше чем gzip, bzip2).
В частности xz при --best aka -9 потребляет до 700мб! при компрессии и 90мб при декомпрессии

Фичи:
Потребление большого объема памяти немного ограничивается предварительным вычислением имеющихся ресурсов.
интеграция в GNU tar
работа с потоками
опционально: progressbar через --verbose

Не хочется сильно засорять ознакомительный топик графиками и прочим, но без этого не обойтись:
Сделал банальный забег gzip, bzip2, xz на предмет степени сжатия, потребления времени. также в качестве гостя принимат участие WinRar (хоть и хмельной, под wine, но всетаки показал отличные результаты)

Получаем 4 квадрата:
Нижний левый - медленные и слабожмущие: gzip и winrar fastest.
Верхний левый: выигрышное соотношение сжатие/время: немного лучше себя показывает bzip2, xz на 1 и 2м уровне сжатия, и
Верхний правый: настоящий прессовый механизм: доллго но очень сильно сжимающий xz
В нижнем правом: никого нет, да и кому нужен долгоработающий и слабосжимающий архиватор?

Но вообще координатная сетка не удачно подобрана: как мы оцениваем время? категориями! например быстро - 10-20 секунд, средне от полминуты до минуты, больше 2 минут - это долго.
так что логарифмическая шкала тут нагляднее:

А если если оценить их как сжатие потока, на моем Core2Duo E6750 @ 2.66GHz,
то получился такой вот график:


т.е. использовуя в качестве сжималки конвеера gzip -1 или gzip -4, в 100мбитной сети можно гонять до 25мбайт/сек нежатых данных. (несколько раз проверял - gzip -4 почему-то дает больший профит чем -3 или -5)
cat /some/data | gzip -1c | ssh user@somehost -c "gzip -dc > /some/data"
xz можно использовать в таком лишь на каналах <8мбит,

Очевидный вывод (При содействии K.O.)
xz - в виду потребления ресурсов занимает нишу архиваторов компрессоров, там где может играть большое значение степень сжатия, и есть достаточно вычислительного ресурса и ресурса времени. т.е. различного рода бекапы/архивы, дистрибутивы (rpm же, tar.xz в archlinux). Или данные очень легко подвергающиеся сжатию: логи, таблицы с текстовыми-цифровыми данными csv, tsv, которые не предполагается изменять.

P.S. Как бы не радовался за xz, в разумности потраченных усилий WinRar Wins.

В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: Windows, Mac или Linux. Это могут быть программы, резервные копии систем или баз данных или просто архив файлов. Нам также часто приходится создавать свои архивы в Linux, чтобы передать несколько файлов друзьям или загрузить на файлообменник. В виде архивов распространяются пакеты программ, исходные коды, а также много других файлов, распространяемых на просторах интернета. Научиться выполнять архивирование файлов в Linux через терминал очень важно, возможно это вам понадобиться, когда не будет доступа к графическому интерфейсу, или просто со временем в терминале станет более приятно работать.

В этой инструкции я хочу подробно рассмотреть утилиты для архивирования в Linux, мы рассмотрим не только самую популярную и универсальную утилиту - tar, но и другие менее известные, а также популярные алгоритмы сжатия.

Важно отметить, что архивирование в linux это не одно и то же что и сжатие файлов linux. Архивирование - это объединение нескольких небольших файлов в один, с целю более удобной последующей передачи, хранения, шифрования или сжатия. Как я уже сказал, архивация выполняется специальными утилитами. Мы не будем трогать архивацию файлов в графическом интерфейсе, вы с ними разберетесь сами, наша тема - терминал.

Самой популярной для Linux утилитой для архивации есть tar. Она используется почти везде, для архивации исходников, упаковки пакетов. Для сжатия используются другие утилиты, в зависимости от алгоритма сжатия, например, zip, bz, xz, lzma и т д. Сначала выполняется архивация, затем сжатие, отдельными программами. Автоматический запуск некоторых утилит сжатия для только что созданного архива поддерживается в tar и других подобных программах с помощью специальных опций.

Также полезной возможностью архивации есть шифрование. Но теперь давайте рассмотрим какие существуют утилиты, с помощью которых выполняется архивирование файлов linux и как ими пользоваться.

Tar

Tar - это стандартная утилита, с помощью которой выполняется архивирование файлов Linux. Постепенно из небольшой программы архивации она превратилась в мощный инструмент, поддерживающий работу со многими вариантами архивов и алгоритмами сжатия. Программа поддерживает большое количество параметров. Давайте рассмотрим ее синтаксис и основные параметры:

$ tar опцииf файл_для_записи /папка_файлами_для_архива

А теперь разберем основные опции:

  • A - добавить файл к архиву
  • c - создать архив в linux
  • d - сравнить файлы архива и распакованные файлы в файловой системе
  • j - сжать архив с помощью Bzip
  • z - сжать архив с помощью Gzip
  • r - добавить файлы в конец архива
  • t - показать содержимое архива
  • u - обновить архив относительно файловой системы
  • x - извлечь файлы из архива
  • v - показать подробную информацию о процессе работы
  • f - файл для записи архива
  • -C - распаковать в указанную папку
  • --strip-components - отбросить n вложенных папок

Теперь давайте рассмотрим архивирование файлов в Linux. Чтобы создать архив используйте такую команду:

tar -cvf archive.tar.gz /path/to/files

А чтобы распаковать архив tar linux:

tar -xvf archive.tar.gz

Очень просто запомнить для упаковки используется опция c - C reate, а для распаковки - x - eX tract.

Сжатый архив создается точно так же, только с опцией -z, это в случае, если использовалось шифрование gizp, если нужно bzip то применяется опция -j:

tar -zcvf archive.tar.gz /path/to/files

$ tar -zxvf archive.tar.gz

Например, рассмотрим как заархивировать папку в Linux:

tar -zcvf home.tar.gz ~/

Хотя можно поступить по-другому, тот же архив мы получим если сначала создать обычный архив с помощью tar, а потом сжать его утилитой для сжатия, только здесь мы получаем больше контроля над процессом сжатия:

gzip archive.tar

Также можно убрать сжатие:

gunzip archive.tar.gz

Утилиты сжатия мы рассмотрим ниже.

Чтобы добавить файл в архив используйте:

tar -rvf archive.tar file.txt

Для извлечения одного файла синтаксис тот же:

tar -xvf archive.tar file.txt

Можно извлечь несколько файлов по шаблону соответствия с помощью параметра wildcard, например, извлечем все php файлы:

tar -xvf archive.tar --wildcards "*.php"

По умолчанию распаковать архив tar linux можно в текущую папку с именем архива, чтобы распаковать в нужную папку используйте ключ -C:

tar -xvf archive.tar -C /path/to/dir

Стандартную утилиту рассмотрели, теперь кратко рассмотрим ее альтернативы. Их не так много, и большинство из них уже устаревшие.

Shar

Shar позволяет создавать самораспаковывающиеся архивы. По сути, это скрипт оболочки, и для распаковки ему необходима оболочка Bash или другая совместимая с Bourne Shell. У Shar есть несколько преимуществ, но также он потенциально небезопасный, так как архив представляет собой исполняемый файл.

Опции shar:

  • -o - сохранять архив в файл вместо стандартного вывода
  • -l - ограничить размер выходного файла
  • -L - ограничить размер выходного файла и разбить его на части
  • -n - имя архива не будет включено в заголовок
  • -a - разрешить автоматическую генерацию заголовков

Примеры использования shar для того чтобы заархивировать папку linux:

Создаем shar архив:

shar file_name.extension > filename.shar

Распаковываем shar архив:

Ar

ar - утилита для создания и управления архивами. В основном используется для архивации статических библиотек, но может быть использована для создания любых архивов. Раньше использовалась довольно часто но была вытеснена утилитой tar. Сейчас используется только для создания и обновления файлов статических библиотек.

  • - d - удалить модули из архива
  • - m - перемещение членов в архиве
  • - p - напечатать специфические члены архива
  • - q - быстрое добавление
  • - r - добавить члена к архиву
  • - s - создать индекс архива
  • - a - добавить новый файл к существующему архиву

Теперь рассмотрим примеры использования. Создадим статическую библиотеку libmath.a из объектных файлов substraction.o и division.o:

ar cr libmath.a substraction.o division.o

Теперь извлечем файлы из архива:

Таким образом, можно распаковать любую статическую библиотеку.

Cpio

cpio - означает Copy in and out (скопировать ввод и вывод). Это еще один стандартный архиватор для Linux. Активно используется в менеджере пакетов Red Hat, а также для создания initramfs. Архивация в Linux для обычных файлов с помощью этой программы не применяется.

Опции утилиты:

  • -a - сбросить время обращения к файлам после их копирования
  • -A - добавить файл
  • -d - создать каталоги при необходимости

Пример использования. Создаем cpio архив:

file1.o file2.o file3.o

ls | cpio -ov > /path/to/output_folder/obj.cpio

Распаковываем архив:

cpio -idv < /path/to folder/obj.cpio

Архивирование папки linux выполняется также само.

Сжатие архивов в Linux

Как создать архив в linux рассмотрели. Теперь давайте поговорим о сжатии. Как я говорил, для сжатия используются специальные утилиты. Рассмотрим кратко несколько из них

Gzip

Чаще всего применяется Gzip. Это стандартная утилита сжатия в Unix/Linux. Для декомпрессии используется gunzip или gzip -d Сначала рассмотрим ее синтаксис:

$ gzip опции файл

$ gunzip опции файл

Теперь разберем опции:

  • -c - выводить архив в стандартный вывод
  • -d - распаковать
  • -f - принудительно распаковывать или сжимать
  • -l - показать информацию об архиве
  • -r - рекурсивно перебирать каталоги
  • -0 - минимальный уровень сжатия
  • -9 - максимальный уровень сжатия

Примеры использования вы уже видели в описании утилиты tar. Например, выполним сжатие файла:

gzip -c файл > архив.gz

А теперь распакуем:

gunzip -c архив.gz

Но чтобы сжать папку в Linux вам придется сначала заархивировать ее с помощью tar, а уже потом сжать файл архива с помощью gzip.

Bzip

bzip2 - еще одна альтернативная утилита сжатия для Linux. Она более эффективная чем gzip, но работает медленнее. Для распаковки используйте утилиту bunzip2.

Описывать опции bzip2 я не буду, они аналогичны gzip. Чтобы создать архив в Linux используйте:

В текущем каталоге будет создан файл file.bz2

Lzma

Новый и высокоэффективный алгоритм сжатия. Синтаксис и опции тоже похожи на Gzip. Для распаковки используйте unlzma.

Xz

Еще один высокоэффективный алгоритм сжатия. Обратно совместимый с Lzma. Параметры вызова тоже похожи на Gzip.

Zip

Кроссплатформенная утилита для создания сжатых архивов формата zip. Совместимая с Windows реализациями этого алгоритма. Zip архивы очень часто используются для обмена файлами в интернете. С помощью этой утилиты можно сжимать как файлы, так и сжать папку linux.

Синтаксис утилиты:

$ zip опции файлы

$ unzip опции архив

Опции утилиты:

  • -d удалить файл из архива
  • -r - рекурсивно обходить каталоги
  • -0 - только архивировать, без сжатия
  • -9 - наилучший степень сжатия
  • -F - исправить zip файл
  • -e - шифровать файлы

Чтобы создать Zip архив в Linux используйте.

- Расширение (формат) - это символы в конце файла после последней точки.
- Компьютер определяет тип файла именно по расширению.
- По умолчанию Windows не показывает расширения имен файлов.
- В имени файла и расширении нельзя использовать некоторые символы.
- Не все форматы имеют отношение к одной и той же программе.
- Ниже находятся все программы с помощью которых можно открыть файл XZ.

Bandizip - удобный архиватор для операционных систем семейства Windows. Программа поддерживает большинство различных форматов и обладает уникальным алгоритмом пропуска несжимаемых файлов. Bandizip интегрируется в контекстное меню проводника, что значительно облегчает управление самой программой, ведь все необходимые операции, например, создание архивов или распаковку данных, можно выполнить прямо из проводника. Помимо этого обладает алгоритмом шифрования, позволяющим защитить файл от нежелательного открытия. Кроме того, в программе имеется функция установки пароля на файл. Данный пароль, как известно, невозможно взломат...

Universal Extractor – удобная утилита для распаковки различных архивов, а также некоторых дополнительных типов файлов. Данная программа, прежде всего, подходит тем пользователям, которые занимаются созданием архивов на компьютере, а лишь скачивают различные архивы из интернета, а затем распаковывают их. Утилита Universal Extractor вполне справляется с этой задачей. Она позволяет распаковать все известные архивы, а также файлы dll, exe, mdi и другие типы файлов. По сути, программа может служить, в некоторой степени, своеобразным установщиком программ, т.к. она позволяет распаковывать некоторые из установщиков, а затем запускать...

HaoZip - китайский клон популярного архиватора Winrar, как с точки зрения функциональности так и интерфейса в целом. Архиватор умеет работать со всеми популярными форматами, среди которых 7Z, ZIP, TAR, RAR, ISO, UDF, ACE, UUE, CAB, BZIP2, ARJ, JAR, LZH, RPM, Z, LZMA, NSIS, DEB, XAR, CPIO, SPLIT, WIM, IMG и другие. Кроме этого с помощью Haozip можно монтировать ISO образы и посмотреть картинки через встроенный просмотрщик, что весьма полезная фича для архиваторов. Что касается интерфейса, то здесь китайские разработчики хорошо потрудились. Они не только скопировали дизайн и функционал с архиватора Winrar, но и добави...

WinRAR – известная программа, предназначенная для работы с архивами. Утилита включает широкий спектр встроенных возможностей. WinRAR быстрее конкурентов сжимает данные, экономя дисковое пространство и время пользователя. Поддерживает известные форматы архивов и подходит для сжатия файлов мультимедиа. Автоматическое распознавание формата файла, особый алгоритм сжатия данных и оптимальный метод упаковки - преимущества приложения. WinRAR умеет сжимать экзекутивные, мультимедийные файлы и библиотеки объектных модулей. Приложение позволяет разделять архивы на отдельные тома и сохранять их на разных накопителях информации.

Ashampoo ZIP - программа-архиватор, помогающая сжимать и хранить нужную информацию. Работает с множеством форматов, позволяя пользователям отправлять объемные документы в сжатом виде. Ashampoo ZIP имеет широкий набор различных функций. Посредством приложения можно создавать, распаковывать и разделять архивы. Помимо этого в программе поддерживается чтение, восстановление, шифрование, а также мгновенное конвертирование. Список форматов, которые поддерживаются Ashampoo ZIP довольно внушительный. Помимо создания архивов программа поддерживает распаковку документов более 30 различных архивных форматов.

Ежегодно, для улучшения и большего удобства пользователей, разработчики различного компьютерного софта выпускают множество интересных, удобных и качественных программ, существенно помогающих в работе. Одной из таких программ является новейшая разработка архиватора WinArc. Данная утилита доступна для общего пользования и с его помощью вам не составит труда заархивировать или разархивировать, любой, интересующий вас файл. Данная утилита во время работы, использует все ядра процессора тем самым ускорив процесс архивирования. Кроме этого имеет функцию регулировки использования ОЗУ, что позволит значительно снизить нагрузку на ваш к...