Archiving and compression (Русский)

Традиционные инструменты архивирования и сжатия Unix разделены в соответствии с философией Unix:

  • Архиватор объединяет несколько файлов в один архивный файл, например, tar.
  • Инструмент сжатия сжимает и расжимает данные, например, gzip.
Состояние перевода: На этой странице представлен перевод статьи Archiving and compression. Дата последней синхронизации: 24 февраля 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Эти инструменты часто используются последовательно: сперва создаётся архивный файл, а затем он сжимается.

Конечно, существуют и универсальные инструменты, которые умеют выполнять обе задачи, а также дополнительно предлагают шифрование, обнаружение ошибок и восстановление.

Только архивирование

ИмяПакетСправкаОписание
GNU tartartar(1), infoОсновная утилита для работы с вездесущими tar-архивами (tarballs), которые используют в том числе pacman и AUR.
libarchivelibarchivebsdtar(1)
bsdcpio(1)
Реализация tar и cpio, которая также предоставляет библиотеку. Используется в pacman и mkinitcpio.
arbinutilsar(1)Устаревший архиватор Unix, который был до tar. Сегодня используется только для создания файлов статических библиотек.
cpiocpiocpio(1)Архиватор файлов через stdin/stdout, поддерживает форматы cpio и tar.
DARdarAURАрхиватор для резервного копирования больших живых файловых систем, учитывает жёсткие ссылки, расширенные атрибуты, разреженные (sparse) файлы и типы inode.

Смотрите также #Использование инструментов только для архивирования.

Инструменты сжатия

Только сжатие

Эти программы сжатия реализуют свой собственный формат файлов.

ИмяПакетСправкаExtTar extОписаниеМногопоточные реализации
bzip2.bz2, .bz.tbz2, .tbzИспользует алгоритм Барроуза-Уилера.lbzip2, pbzip2
gzip.gz, .z.tgz, .tazGNU zip, основан на алгоритме Deflate.
lrzip.lrzУлучшенная версия rzip, использует разные алгоритмы.является многопоточным
LZ4.lz4Написан на C, сфокусирован на скорости.является многопоточным
lzip.lzИспользует LZMA.plzipAUR
lzop.lzop.tzoИспользует LZO-библиотеку (lzo).
xz.xz, .lzma.txz, .tlzИспользует LZMA, стандартный для GNU и архивов ядра.является многопоточным, ,
zstd.zstИспользует алгоритм Zstandard.является многопоточным
  • Многопоточные реализации улучшают скорость работы за счёт использования нескольких ядер процессора.
  • Tar ext — расширения сжатых архивов, в которых используется tar в связке с инструментом сжатия, например, .tzo — это .
  • Смотрите также #Использование инструментов только для сжатия.

Архивирование и сжатие

ИмяПакетыСправкаExtОписание
p7zip7z(1).7zСторонний POSIX-порт утилиты командной строки 7-zip.
7-ZipОфициальная Linux-версия файлового архиватора с высокой степенью сжатия.
RAR, .rarИ формат, и утилита rar являются проприетарными.
ZIP, zip(1), .zipШироко используется вне Linux-мира.
Unarchiverunar(1), многоИнструмент командной строки приложения для Mac, поддерживает более 40 форматов архивов.
ZPAQ.zpaqАрхиватор с высокой степенью сжатия, написанный на C++, использует несколько алгоритмов.
LHa, .lzh (на Amiga: .lha)Архиватор LZH/LHA, поддерживает lh7-метод.

Смотрите также #Использование инструментов для архивирования и сжатия.

Таблица возможностей

Некоторые инструменты умеют работать с несколькими форматами, что позволяет обойтись установкой меньшего числа пакетов.

Распаковка

Имяgzipbzip2ZIPLHa/LZHRARcompressCABARJ
ДаДа
ДаДаДаДаДаДаДа
ДаДаДаДаДаДаДа
  1. Утилита gunzip из пакета может распаковывать только ZIP-архивы с одним файлом внутри.

Сравнение использования

Использование инструментов только для архивирования

ИмяСоздание архиваИзвлечение из архиваПросмотр содержимого
tar(1)
cpio(1)cpio -t < archive.cpio

Использование инструментов только для сжатия

ИмяСжатиеРаспаковкаРаспаковка в stdout
bzip2 -d file.bz2


lrztar -d folder.tar.lrz
xz -d file.xz

Использование инструментов для архивирования и сжатия

ИмяСжатиеРаспаковкаРаспаковка в stdoutПросмотр содержимого
7z(1)
rar x archive.rar
zip(1), zip archive.zip file1 file2
кратко: подробно: lha v archive.lzh

Вспомогательные инструменты

  • unpack Скрипт-обёртка для работы с несколькими форматами архивов.
https://github.com/githaff/unpack || unpack-gitAUR

Определение формата архива

Для извлечения содержимого архива нужно знать его формат. Если файл архива имеет правильное название, то его формат можно определить по расширению.

В других случаях можно воспользоваться инструментом , смотрите .

Эзотерические, редкие или устаревшие инструменты

ИмяПакетыExtОписание
ARC.arc, .arkБыл очень популярен в ранние времена BBS. Заменён на ZIP.
ARJ.arjАрхиватор, использовавшийся в DOS/Windows в середине 1990-х годов. Это клон с открытым исходным кодом.
compressncompress.ZКлассическая утилита сжатия unix, которая может работать с древним архивом .Z.
PAR2.par2Parity archiver с контролем целостности файлов. Смотрите также Parchive.
shar.sharСоздаёт самораспаковывающиеся архивы, которые фактически являются скриптами.
Zoo.zooЧасто использовался в ОС OpenVMS до того, как PKZIP стал популярным.

Сжатие в файловой системе

Некоторые файловые системы поддерживают сжатие файловых данных "на лету":

  • Btrfs может быть настроен на сжатие отдельных файлов, каталогов или целых томов по умолчанию.
  • В ZFS сжатие может быть включено для пулов или файловых систем.

Сжатие device mapper

Ведётся работа над проектом VDO, который обеспечивает уровень дедупликацию и сжатие на уровне device mapper для повышения эффективности хранения данных. Доступны следующие пакеты:

Библиотеки сжатия

  • libzip Обеспечивает создание и извлечение ZIP-файлов. Используется в KDE и Deepin вместо инструментов zip/unzip.
https://libzip.org || libzip

Решение проблем

Проблемы с японскими именами файлов

Японские версии Windows кодируют ZIP-архивы с помощью Shift-JIS, из-за чего при извлечении будут получаться кракозябры. Для корректного извлечения используйте `unzip` с опцией shift-jis.

$ unzip -O shift-jis nihongo.zip

Смотрите также

gollark: Deploying counterbees.
gollark: Ncurses, you have seen through my false "greeting".
gollark: Greetings, mortal!
gollark: We have 550 or so.
gollark: It is not "dead", we used very safe\* apiothaumaturgic resurrection things.
This article is issued from Archlinux. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.