Gzip сокращает размер
заданных файлов используя кодирование Зива-Лемеля
(LZ77). Когда возможно, каждый файл замещается
файлом с расширением '.gz', при этом
сохраняются владелец, режимы, доступ и
времена модификации (Другие расширения '-gz'
для VMS, 'z' для MSDOS, OS/2, FAT и Atari). Если никаких
файлов не указано или имя файла '-', то
пакуется стандартный ввод и выдается на
стандартный вывод. Gzip пытается паковать
только обычные файлы, в частности GZip
игнорирует символические ссылки.
Gzip использует алгоритм Зива-Лемеля
также как Zip, PKZip. Итоговый размер,
полученного файла после сжатия, зависит от
размера исходного файла и наличия в нем
общих подстрок. Обычно, такой текст, как
исходный код или английский текст
сокращается на 60-70%. Паковка с
использованием этого алгоритма обычно
лучше, чем при использовании LZW
(его использует Compress), кодирование Хаффмана
(его использует Pack) или адаптированное
кодирование Хаффмана (Compact).
Упаковка происходит
независимо от того увеличился ли размер
упакованного файл в сравнении с оригиналом
или нет. Причина расширения - несколько
байтов для заголовка Gzip файла, плюс 5 байтов
для каждого 32К блока, или отношение
расширения 0.015% от длины файла. Заметим, что
фактическое число занятых на диске блоков
уже никогда не возрастает. Gzip сохраняет
режимы доступа, владельцев и время
модификации файлов при упаковке и
распаковке...