8. Работа с архиваторами

8.1. tar

tar (англ. tape archive) — формат битового потока или файла архива, а также название традиционной для Unix программы для работы с такими архивами. Программа tar была стандартизирована в POSIX.1-1998, а также познее в POSIX.1-2001. Первоначально программа tar использовалась для создания архивов на магнитной ленте, а в настоящее время tar используется для хранения нескольких файлов внутри одного файла, для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы. Одним из преимуществ формата tar при создании архивов являеется то, что в архив содержится информацию о структуре каталогов, о владельце и группе отдельных файлов, а также временные метки файлов.

Как и другие утилиты Unix, tar — специализированная программа, которая следует философии Unix: «делать только одну вещь» (работать с архивами), «но делать её хорошо». Поэтому tar не создаёт сжатых архивов, а использует для сжатия внешние утилиты, такие как gzip и bzip2. Ранее для сжатия использовалась также утилита compress, которая практически вышла из употребления.

8.2. gzip

gzip (сокращение от GNU zip) — утилита сжатия и восстановления (декомпрессии) файлов. использующая алгоритм Лемпеля — Зива (LZW). Используется в основном в UNIX-системах. Была создана Jean-Loup Gailly и Марком Адлером (Mark Adler). Версия 0.1 была впервые выпущена 31 октября 1992 г., а версия 1.0 в феврале 1993 г.

В соответствии с традициями UNIX-программирования, gzip выполняет только одну функцию: сжатие и распаковка одного файла, он не умеет упаковывать несколько файлов в один архив. При архивировании, названием файла архива становится название сжатого файла с постфиксом .gz, расширение не заменяется. Для упаковки нескольких файлов обычно их сначала объединяют в один файл утилитой tar, а потом этот файл сжимают gzip. Таким образом, архивы обычно имеют постфикс .tar.gz.

В последнее время gzip активно применяется для сжатия Интернет-трафика.