Archiving and compression (Русский)
Традиционные инструменты архивирования и сжатия 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 | darAUR | Архиватор для резервного копирования больших живых файловых систем, учитывает жёсткие ссылки, расширенные атрибуты, разреженные (sparse) файлы и типы inode. |
Смотрите также #Использование инструментов только для архивирования.
Инструменты сжатия
Только сжатие
Эти программы сжатия реализуют свой собственный формат файлов.
Имя | Пакет | Справка | Ext | Tar ext | Описание | Многопоточные реализации |
---|---|---|---|---|---|---|
bzip2 | .bz2, .bz | .tbz2, .tbz | Использует алгоритм Барроуза-Уилера. | lbzip2, | ||
gzip | .gz, .z | .tgz, .taz | GNU zip, основан на алгоритме Deflate. | pigz | ||
lrzip | .lrz | Улучшенная версия rzip, использует разные алгоритмы. | является многопоточным | |||
LZ4 | .lz4 | Написан на C, сфокусирован на скорости. | является многопоточным | |||
lzip | lzip(1) | .lz | Использует LZMA. | |||
lzop | .lzop | .tzo | Использует LZO-библиотеку (lzo). | |||
xz | .xz, .lzma | .txz, .tlz | Использует LZMA, стандартный для GNU и архивов ядра. | является многопоточным, , | ||
zstd | zstd | .zst | Использует алгоритм Zstandard. | является многопоточным | ||
- Многопоточные реализации улучшают скорость работы за счёт использования нескольких ядер процессора.
- Tar ext — расширения сжатых архивов, в которых используется tar в связке с инструментом сжатия, например, — это .
- Смотрите также #Использование инструментов только для сжатия.
Архивирование и сжатие
Имя | Пакеты | Справка | Ext | Описание |
---|---|---|---|---|
p7zip | .7z | Сторонний POSIX-порт утилиты командной строки 7-zip. | ||
7-Zip | Официальная Linux-версия файлового архиватора с высокой степенью сжатия. | |||
RAR | rarAUR, | .rar | И формат, и утилита rar являются проприетарными. | |
ZIP | zip, | , | .zip | Широко используется вне Linux-мира. |
Unarchiver | , | много | Инструмент командной строки приложения для Mac, поддерживает более 40 форматов архивов. | |
ZPAQ | .zpaq | Архиватор с высокой степенью сжатия, написанный на C++, использует несколько алгоритмов. | ||
LHa | lhasa, | lha(1) | .lzh (на Amiga: .lha) | Архиватор LZH/LHA, поддерживает lh7-метод. |
Смотрите также #Использование инструментов для архивирования и сжатия.
Таблица возможностей
Некоторые инструменты умеют работать с несколькими форматами, что позволяет обойтись установкой меньшего числа пакетов.
Распаковка
Имя | gzip | bzip2 | ZIP | LHa/LZH | RAR | compress | CAB | ARJ |
---|---|---|---|---|---|---|---|---|
- Утилита gunzip из пакета может распаковывать только ZIP-архивы с одним файлом внутри.
Сравнение использования
Использование инструментов только для архивирования
Имя | Создание архива | Извлечение из архива | Просмотр содержимого |
---|---|---|---|
tar(1) | |||
cpio(1) | ls file1 file2 | cpio -o > archive.cpio |
Использование инструментов только для сжатия
Имя | Сжатие | Распаковка | Распаковка в stdout |
---|---|---|---|
bzip2(1) | |||
gzip -d file.gz | |||
lrztar -d folder.tar.lrz | |||
Использование инструментов для архивирования и сжатия
Имя | Сжатие | Распаковка | Распаковка в stdout | Просмотр содержимого |
---|---|---|---|---|
7z l archive.7z | ||||
rar x archive.rar | ||||
, | ||||
lha(1) | lha x archive.lzh | кратко: подробно: | ||
Вспомогательные инструменты
- atool — Скрипт для управления архивами различных типов.
Определение формата архива
Для извлечения содержимого архива нужно знать его формат. Если файл архива имеет правильное название, то его формат можно определить по расширению.
В других случаях можно воспользоваться инструментом , смотрите .
Эзотерические, редкие или устаревшие инструменты
Имя | Пакеты | Ext | Описание |
---|---|---|---|
ARC | .arc, .ark | Был очень популярен в ранние времена BBS. Заменён на ZIP. | |
ARJ | .arj | Архиватор, использовавшийся в DOS/Windows в середине 1990-х годов. Это клон с открытым исходным кодом. | |
compress | ncompress | .Z | Классическая утилита сжатия unix, которая может работать с древним архивом .Z. |
PAR2 | .par2 | Parity archiver с контролем целостности файлов. Смотрите также Parchive. | |
shar | .shar | Создаёт самораспаковывающиеся архивы, которые фактически являются скриптами. | |
Zoo | .zoo | Часто использовался в ОС OpenVMS до того, как PKZIP стал популярным. |
Сжатие в файловой системе
Некоторые файловые системы поддерживают сжатие файловых данных "на лету":
Сжатие device mapper
Ведётся работа над проектом VDO, который обеспечивает уровень дедупликацию и сжатие на уровне device mapper для повышения эффективности хранения данных. Доступны следующие пакеты:
Библиотеки сжатия
- libzip — Обеспечивает создание и извлечение ZIP-файлов. Используется в KDE и Deepin вместо инструментов zip/unzip.
Решение проблем
Проблемы с японскими именами файлов
Японские версии Windows кодируют ZIP-архивы с помощью Shift-JIS, из-за чего при извлечении будут получаться кракозябры. Для корректного извлечения используйте `unzip` с опцией shift-jis.
$ unzip -O shift-jis nihongo.zip