В наши дни мы сталкиваемся с файлами архивов очень часто и на всех платформах: 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 используйте.

Мы надеемся, что помогли Вам решить проблему с файлом XZ. Если Вы не знаете, где можно скачать приложение из нашего списка, нажмите на ссылку (это название программы) - Вы найдете более подробную информацию относительно места, откуда загрузить безопасную установочную версию необходимого приложения.

Посещение этой страницы должно помочь Вам ответить конкретно на эти, или похожие вопросы:

  • Как открыть файл с расширением XZ?
  • Как провести конвертирование файла XZ в другой формат?
  • Что такое расширение формата файлов XZ?
  • Какие программы обслуживают файл XZ?

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

Что еще может вызвать проблемы?

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

Вы хотите помочь?

Если у Вас есть дополнительная информация о расширение файла XZ мы будем признательны, если Вы поделитесь ею с пользователями нашего сайта. Воспользуйтесь формуляром, находящимся и отправьте нам свою информацию о файле XZ.

Многие наверное уже знают про утилитку для компрессии/декомпрессии 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.

У вас есть проблема с открытием.XZ-файлов? Мы собираем информацию о файловых форматах и можем рассказать для чего нужны файлы XZ. Дополнительно мы рекомендуем программы, которые больше всего подходят для открытия или конвертирования таких файлов.

Для чего нужен файловый формат.XZ?

Файловое расширение.xz принадлежит формату и типу файлов "Сжатый архив XZ" (.xz). XZ — это название свободного алгоритма сжатия данных, основанного на более раннем формате LZMA и появившегося в рамках проекта The Tukaani Project (бывший дистрибутив GNU/Linux на базе Slackware). Как и LZMA, XZ является целочисленным форматом и позволяет достигать высоких коэффициентов сжатия. XZ тесно связан со свободным архиватором 7-Zip и переданным в общественное достояние инструментарием LZMA SDK.

Файл.xz представляет собой сжатый архив в формате XZ. Родная поддержка архивов XZ обеспечивается набором утилит XZ Utils (бывший LZMA Utils), являющимся эталонной реализацией XZ для целого ряда платформ и ОС. Помимо этого, в среде Майкрософт Windows формат XZ поддерживают несколько бесплатных и коммерческих архиваторов.



XZ поддерживает сжатие только на уровне файлов, и по этому причине данный формат часто используется в сочетании с TAR. В этом случае архив.tar ("tarball") используется для объединения файлов и каталогов в один файл, после чего такой файл сжимается методом XZ ((.tar.xz или.txz). Как XZ, так и TAR более распространены в Unix-подобных ОС, таких как FreeBSD и GNU/Linux.

Программы для открытия или конвертации XZ файлов

Вы можете открыть файлы XZ с помощью следующих программ: 

Недавно скачал образ свежей фряшки 8.2, удивился когда увидел что образ запакован в.xz, раньше никогда не слышал про такой формат архива, оказывается XZ - формат сжатых данных, использующий алгоритм LZMA2 и призванный заменить формат LZMA. Как и форматы gzip и bzip2, он является контейнером для единственного файла, поэтому его обычно используют совместно с форматом tar.

По привычке попробовал распаковать WinRar-ом, на что получил ответ от него, мол архив битый, или не является архивом 🙁 печально!

В тырнете нашел одну досовскую утилитку, для распаковки таких архивов, слил ее себе, ну и выложил на сайте у себя, т.к. такие вещи надо иметь под рукой)

Распаковываем архивчик, кидаем файлик xz.exe в system32, если конечно хотим пользоваться им спокойно, без ввода полного пути к нему.
Работать с утилитой очень просто, например распаковать свеженький дистрибутивчик:

Xz -d u:\FreeBSD-8.2-RELEASE-amd64-dvd1.iso.xz

также можно посмотреть все ключи команды:

C:\xz --help Usage: xz ... ... Compress or decompress FILEs in the .xz format. -z, --compress сила компресии -d, --decompress сила декомпрессии -t, --test проверка целостности сжатого файла -l, --list перечислить информацию о файлах.xz -k, --keep сохранить (не удалять) входные файлы -f, --force принудительная перезапись выходного файла и (де)сжатия ссылок -c, --stdout писать на стандартный вывод и не удалять входные файлы -0 ... -9 пресет сжатия; по умолчанию 6; использовать компрессор *и* использование памяти декомпрессора перед использованием 7-9! -e, --extreme попробуйте улучшить коэффициент сжатия, используя большее время процессора; не влияет на требования к памяти декомпрессора -q, --quiet подавлять предупреждения; укажите дважды для подавления ошибок -v, --verbose быть многословным; укажите дважды для еще более подробных отчетов -h, --help отобразить эту короткую справку и выйти -H, --long-help отобразить подробную справку (перечислены также расширенные параметры) -V, --version отобразить номер версии и выйти

Ну как бэ все)
Приятного вам юзания утилиты!)