Вперед Назад Содержание

1. Обзор

'gzip' сокращает размер заданных файлов используя кодирование Зива -Лемеля (LZ77). Когда возможно, каждый файл замещается файлом с расширением '.gz', при этом сохраняются владелец, режимы, доступ и времена модификации (Другие расширения '-gz' для VMS, 'z' для MSDOS, OS/2, FAT и Atari). Если никаких файлов не указано или имя файла '-', то пакуется стандартный ввод и выдается на стандартный вывод. 'gzip' пытается паковать только обычные файлы, в частности 'gzip' игнорирует символические ссылки.

Если новое имя файла слишком длинно для данной системы, 'gzip' укорачивает его. 'gzip' пытается укоротить только те части имени файла, которые длиннее, чем 3 символа (Часть ограниченная точками). Если имя состоит только из маленьких частей, то будут укорочены самые длинные части. Например, если имя файла ограничено 14 символами, то gzip.msdos.exe будет после сжатия иметь имя gzi.msd.exe.gz. Имена не укорачиваются в системах, у которых нет ограничения на длину имени.

По умолчанию 'gzip' сохраняет оригинальное имя файла и время создания в запакованном файле. Они используются, когда файл распаковывается с опцией '-N'. Это удобно, когда имя пакуемого файла было укорочено, и когда время создания не было сохранено после пересылки файла.

Запакованный файл, может быть приведен к исходному виду используя 'gzip -d' или 'gunzip' или 'zcat'. Если оригинальное имя файла, сохраненное в запакованном файле, не переносимо в данную файловою систему, то новое имя будет сконструировано из оригинального, так чтобы сделать его приемлемым.

'gunzip' берет список файлов из командной строки и замещает каждый файл, чье имя оканчивается на '.gz', '.z', '.Z', '-gz', '-z', '_Z' и который начинается с корректного магического числа, на распакованный файл без оригинального расширения.

'gunzip' также распознает специальные расширения '.tgz', '.taz', как сокращения от '.tar.gz', '.tar.Z' соответственно. Во время паковки 'gzip' использует расширение '.tgz', если необходимо, вместо укорачивания файла с расширением '.tar'.

'gunzip' распаковывает файлы созданные 'gzip', 'zip', 'compress', 'pack'. Определение формата ввода производится автоматически. Когда используются первые 2 формата, 'gunzip' проверяет 32 битные значения CRC (циклический избыточный контроль) Для 'pack', 'gunzip' проверяет длины распакованных файлов. Формат 'compress' не предназначен для проверки целостности. Однако, 'gunzip' иногда способен проверить и плохие '.Z' файлы.

Если вы получили ошибку во время распаковки '.Z' файла , не предполагайте что этот файл корректен, только потому что стандартный 'uncompress' не выдает сообщений об ошибке. Как правило это означает, что стандартный 'uncompress' не проверил его входной файл и, соответственно, сгенерировал неверный выходной файл. SCO 'compress -H' формат (lzh метод паковки) не включает CRC, но также поддерживает некоторую проверку целостности.

Файлы созданные 'zip' могут быть распакованы 'gzip', только если они имеют одного члена сжатого методом 'deflation'. Эта особенность встроена только для облегчения перевода 'tar.zip' файлов в формат 'tar.gz'. Для извлечения файлов с несколькими членами, используйте 'unzip' 'вместо 'gunzip'.

'zcat' идентичен 'gunzip -c'. 'zcat' распаковывает любой список файлов обозначенных в командной строке или из стандартного ввода, при этом, записывая распакованные данные в стандартный вывод. 'zcat' распаковывает файлы с корректным магическим числом, независимо от того имеют ли они суффикс '.gz'.

'gzip' использует алгоритм Зива-Лемеля также как 'zip', 'PKZIP'. Итоговый размер, полученного файла после сжатия, зависит от размера исходного файла и наличия в нем общих подстрок. Обычно, такой текст, как исходный код или английский текст сокращается на 60-70%. Паковка с использованием этого алгоритма обычно лучше, чем при использовании LZW (его использует 'compress'), кодирование Хаффмана (его использует 'pack') или адаптированное кодирование Хаффмана ('compact').

Упаковка происходит независимо от того увеличился ли размер упакованного файл в сравнении с оригиналом или нет. Причина расширения - несколько байтов для заголовка 'gzip' файла, плюс 5 байтов для каждого 32К блока, или отношение расширения 0.015% от длины файла. Заметим, что фактическое число занятых на диске блоков уже никогда не возрастает. 'gzip' сохраняет режимы доступа, владельцев и время модификации файлов при упаковке и распаковке.


Вперед Назад Содержание