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

Состояние перевода:
На этой странице представлен перевод статьи
Archiving and compression
. Дата последней синхронизации: 24 февраля 2022. Вы можете
помочь
синхронизировать перевод, если в английской версии произошли
изменения
.
Традиционные инструменты архивирования и сжатия Unix разделены в соответствии с
философией Unix
:
Архиватор
объединяет несколько файлов в один архивный файл, например,
tar
.
Инструмент
сжатия
сжимает и расжимает данные, например,
gzip
.
Эти инструменты часто используются последовательно: сперва создаётся архивный файл, а затем он сжимается.
Конечно, существуют и
универсальные инструменты, которые умеют выполнять обе задачи
, а также дополнительно предлагают шифрование, обнаружение ошибок и восстановление.
Только архивирование
Имя
Пакет
Справка
Описание
GNU
tar
tar
tar(1)
,
info
Основная утилита
для работы с вездесущими tar-архивами (tarballs), которые используют в том числе
pacman
и
AUR
.
libarchive
libarchive
bsdtar(1)
bsdcpio(1)
Реализация
tar
и
cpio
, которая также предоставляет библиотеку. Используется в
pacman
и
mkinitcpio
.
ar
binutils
ar(1)
Устаревший архиватор Unix, который был до
tar
. Сегодня используется только для создания файлов
статических библиотек
.
cpio
cpio
cpio(1)
Архиватор файлов через stdin/stdout, поддерживает форматы cpio и tar.
DAR
dar
AUR
dar(1)
Архиватор для резервного копирования больших живых файловых систем, учитывает жёсткие ссылки,
расширенные атрибуты
, разреженные (sparse) файлы и типы inode.
Совет
И GNU, и BSD tar автоматически делегируют распаковку сжатых данных утилитами bzip2, compress, gzip, lzip, lzma, lzop, zstd и xz. Только BSD tar имеет встроенную поддержку lz4 (но GNU tar тоже может с ним работать с помощью
--use-compress-program=lz4
/
-Ilz4
). При создании архивов оба поддерживают ключ
-a
, позволяющую направить архив в соответствующую программу для сжатия, определяемую по расширению создаваемого файла. BSD tar определяет используемый формат сжатия, разбирая содержимое файла, а GNU tar смотрит только на расширение.
Смотрите также
#Использование инструментов только для архивирования
.
Инструменты сжатия
Только сжатие
Эти программы сжатия реализуют свой собственный формат файлов.
Имя
Пакет
Справка
Ext
Tar ext
Описание
Многопоточные реализации
bzip2
bzip2
bzip2(1)
.bz2, .bz
.tbz2, .tbz
Использует
алгоритм Барроуза-Уилера
.
lbzip2
,
pbzip2
gzip
gzip
gzip(1)
.gz, .z
.tgz, .taz
GNU zip, основан на алгоритме
Deflate
.
pigz
lrzip
lrzip
lrzip(1)
.lrz
Улучшенная версия
rzip
, использует разные алгоритмы.
является многопоточным
LZ4
lz4
lz4(1)
.lz4
Написан на C, сфокусирован на скорости.
является многопоточным
lzip
lzip
lzip(1)
.lz
Использует
LZMA
.
plzip
AUR
lzop
lzop
lzop(1)
.lzop
.tzo
Использует
LZO
-библиотеку (
lzo
).
xz
xz
xz(1)
.xz, .lzma
.txz, .tlz
Использует
LZMA
, стандартный для GNU
coreutils
и архивов ядра.
является многопоточным,
pixz
,
pxz-git
AUR
zstd
zstd
zstd(1)
.zst
Использует алгоритм
Zstandard
.
является многопоточным
Многопоточные реализации улучшают скорость работы за счёт использования нескольких ядер процессора.
Tar ext — расширения сжатых архивов, в которых используется tar в связке с инструментом сжатия, например,
.tzo
— это
.tar.lzo
.
Смотрите также
#Использование инструментов только для сжатия
.
Архивирование и сжатие
Имя
Пакеты
Справка
Ext
Описание
7-Zip
7zip
7z(1)
[
устаревшая ссылка
2024-12-26]
.7z
Сторонний POSIX-порт утилиты командной строки
7-zip
.
RAR
rar
AUR
,
unrar
rar(1)
.rar
И формат, и утилита
rar
являются проприетарными.
ZIP
zip
,
unzip
zip(1)
,
unzip(1)
.zip
Широко используется вне Linux-мира.
Unarchiver
unarchiver
unar(1)
,
lsar(1)
много
Инструмент командной строки приложения для Mac, поддерживает более 40 форматов архивов.
ZPAQ
zpaq
AUR
zpaq(1)
.zpaq
Архиватор с высокой степенью сжатия, написанный на C++, использует несколько алгоритмов.
LHa
lhasa
,
lha
AUR
lha(1)
.lzh (на Amiga: .lha)
Архиватор LZH/LHA, поддерживает lh7-метод.
Смотрите также
#Использование инструментов для архивирования и сжатия
.
Таблица возможностей
Некоторые инструменты умеют работать с несколькими форматами, что позволяет обойтись установкой меньшего числа пакетов.
Распаковка
Имя
gzip
bzip2
ZIP
LHa/LZH
RAR
compress
CAB
ARJ
gzip
Да
Нет
Частично
1
Нет
Нет
Да
Нет
Нет
7zip
Да
Да
Да
Да
Да
Нет
Да
Да
unarchiver
Да
Да
Да
Да
Да
Да
Да
Частично
Утилита
gunzip
из пакета
gzip
может распаковывать только ZIP-архивы с одним файлом внутри.
Сравнение использования
Использование инструментов только для архивирования
Имя
Создание архива
Извлечение из архива
Просмотр содержимого
tar(1)
tar cfv archive.tar file1 file2
tar xfv archive.tar
tar -tvf archive.tar
cpio(1)
ls file1 file2 | cpio -o > archive.cpio
cpio -i -vd < archive.cpio
cpio -t < archive.cpio
Использование инструментов только для сжатия
Имя
Сжатие
Распаковка
Распаковка в stdout
bzip2(1)
bzip2 file
bzip2 -d file.bz2
bzcat file.bz2
gzip(1)
gzip file
gzip -d file.gz
zcat file.gz
lrzip(1)
lrzip file
lrztar folder
lrzip -d file.lrz
lrztar -d folder.tar.lrz
lrzcat file.lrz
xz(1)
xz file
xz -d file.xz
xzcat file.xz
Использование инструментов для архивирования и сжатия
Имя
Сжатие
Распаковка
Распаковка в stdout
Просмотр содержимого
7z(1)
[
устаревшая ссылка
2024-12-26]
7z a archive.7z file1 file2
7z x archive.7z
7z e -so archive.7z file1
7z l archive.7z
rar(1)
rar a archive.rar file1 file2
rar x archive.rar
rar p -inul archive.rar file1
rar l archive.rar
zip(1)
,
unzip(1)
zip archive.zip file1 file2
unzip archive.zip
unzip -p archive.zip file1
unzip -l archive.zip
lha(1)
lha ao7 archive.lzh file1 file2
lha x archive.lzh
кратко:
lha l archive.lzh
подробно:
lha v archive.lzh
Вспомогательные инструменты
atool
— Скрипт для управления архивами различных типов.
https://www.nongnu.org/atool/
||
atool
dtrx
— Интеллектуальный инструмент для извлечения архивов.
https://github.com/brettcs/dtrx
||
dtrx
AUR
J7Z
— GUI для Linux на java, который пытается упростить сжатие данных и резервное копирование. Он может создавать архивы 7z, BZip2, Zip, GZip, Tar.
http://j7z.xavion.name/
[
устаревшая ссылка
2025-08-15 ⓘ]
||
j7z
AUR
unp
— Инструмент командной строки, позволяющий легко распаковывать архивы.
https://github.com/mitsuhiko/unp
||
python-unp
AUR
unpack
— Скрипт-обёртка для работы с несколькими форматами архивов.
https://github.com/githaff/unpack
||
unpack-git
AUR
Bash/Функции#Извлечение
Определение формата архива
Для извлечения содержимого архива нужно знать его формат. Если файл архива имеет правильное название, то его формат можно определить по расширению.
В других случаях можно воспользоваться инструментом
file
, смотрите
file(1)
.
Эзотерические, редкие или устаревшие инструменты
Имя
Пакеты
Ext
Описание
ARC
arc
AUR
.arc, .ark
Был очень популярен в ранние времена BBS. Заменён на ZIP.
ARJ
arj
.arj
Архиватор, использовавшийся в DOS/Windows в середине 1990-х годов. Это клон с открытым исходным кодом.
compress
ncompress
.Z
Классическая утилита сжатия unix, которая может работать с древним архивом .Z.
PAR2
par2cmdline
.par2
Parity archiver с контролем целостности файлов. Смотрите также
Parchive
.
shar
sharutils
.shar
Создаёт самораспаковывающиеся архивы, которые фактически являются скриптами.
Zoo
zoo
AUR
.zoo
Часто использовался в ОС
OpenVMS
до того, как PKZIP стал популярным.
Сжатие в файловой системе
Некоторые
файловые системы
поддерживают сжатие файловых данных "на лету":
Btrfs
может быть настроен на сжатие отдельных файлов, каталогов или целых томов по умолчанию.
В
ZFS
сжатие может быть включено для пулов или файловых систем.
Сжатие device mapper
Ведётся работа над проектом VDO, который обеспечивает уровень дедупликацию и сжатие на уровне device mapper для повышения эффективности хранения данных. Доступны следующие пакеты:
vdo
— Пользовательские инструменты для управления томами VDO
https://github.com/dm-vdo/vdo
||
vdo
AUR
kvdo
— Пара модулей ядра, которые предоставляют пулы дедуплицированного и/или сжатого блочного хранилища
https://github.com/dm-vdo/kvdo
||
kvdo-dkms
AUR
[
ссылка недействительна
: package not found]
Библиотеки сжатия
Brotli
— Алгоритм сжатия потоков данных с использованием алгоритма LZ77, кодирования Хаффмана и контекстного моделирования второго порядка.
https://github.com/google/brotli
||
brotli
libzip
— Обеспечивает создание и извлечение ZIP-файлов. Используется в KDE и Deepin вместо инструментов zip/unzip.
https://libzip.org
||
libzip
zlib
— Реализация deflate, используемая в gzip и PKZIP.
https://www.zlib.net/
||
zlib
Zopfli
— Компрессор файлов с высоким коэффициентом сжатия от Google, использующий совместимый с deflate алгоритм под названием zopfli.
https://github.com/google/zopfli
||
zopfli-git
AUR
Решение проблем
Проблемы с японскими именами файлов
Японские версии Windows кодируют ZIP-архивы с помощью Shift-JIS, из-за чего при извлечении будут получаться кракозябры. Для корректного извлечения используйте `unzip` с опцией shift-jis.
$ unzip -O shift-jis nihongo.zip
Смотрите также
List of applications/Utilities#Archiving and compression tools
List of applications/Multimedia#Image compression
Wikipedia:Comparison of file archivers
Wikipedia:List of archive formats
Wikipedia:Comparison of archive formats