gzip [ -acdfhlLnNrtvV19 ] [ -S суффикс ] [ файл ... ]
gunzip [ -acfhlLnNrtvV ] [ -S суффикс ] [ файл ... ]
zcat [ -fhLV ] [ файл ... ]
Gzip уменьшает размер перечисленных файлов, используя кодирование Лемпеля-Зива (LZ77). Там, где это возможно, каждый файл заменяется архивом с расширением .gz, с таким же владельцем, временем доступа и модификации. (Расширение по умолчанию - gz для VMS, z для MSDOS, OS/2 FAT, Windows NT FAT и Atari). Если не указано ни одного файла, или как имя файла указан "-", то стандартный поток ввода сжимается в стандартный поток вывода. Gzip будет пытаться сжать только обычные файлы. В частности, он проигнорирует символические ссылки.
Если имя сжатого файла слишком длинное для файловой системы, где он находится, gzip урезает его. Gzip пытается укоротить только те части имени файла, которые длиннее 3 символов (на части файл разбивается точкой). Если имя файла состоит только из коротких частей, укорачиваются только самые длинные части. Например, если имя файла ограничено 14-ю символами, gzip.msdos.exe сжимается в gzi.msd.exe.gz. Имена не укорачиваются на файловых системах не имеющих ограничения по длине имени файла.
По умолчанию gzip сохраняет в сжатом файле его оригинальное имя и временную метку. Это нужно для разархивирования файла с опцией -N. Она используется, если имя сжатого файла было усечено или временная метка при перемещении файла не сохранилось.
Сжатые файлы могут быть восстановлены в первоначальное состояние командой gzip -d или gunzip или zcat. Если первоначальное имя файла, сохранённое в архиве, не допускается файловой системой, в которой он находится, то ему создаётся новое имя из первоначального по правилам этой системы.
gunzip берёт список файлов из командной строки и заменяет каждый файл с расширением .gz, -gz, .z, -z, _z или .Z и начинающийся правильным заголовком разархивированным файлом без этого расширения. gunzip также распознаёт специальные расширения .tgz и .taz как сокращения от .tar.gz и .tar.Z соответственно. Сжимая файл, gzip по необходимости использует расширение .tgz вместо усечения имени у файла с расширением .tar.
gunzip на данный момент может распаковывать архивы, созданные gzip, zip, compress, compress -H или pack. Распознавание формата архива автоматическое. Используя первые два формата, gunzip проверяет 32-битный CRC. Для формата pack gunzip проверяет длину разархивированного файла. Стандартный формат compress не был рассчитан на возможность проверки целостности архива. Тем не менее, gunzip в некоторых ситуациях может распознать повреждённый .Z-файл. Если вы получаете сообщение об ошибке в процессе распаковки .Z-файла, не думайте, что он не повреждён, если стандартный uncompress на него не жалуется. Это обычно происходит из-за того, что uncompress не проверяет целостность архива и достаёт из него только кучу мусора. На системе SCO формат compress -H (алгоритм lzh) не использует CRC, но также допускает некоторые проверки на целостность.
Файлы, сжатые zip-ом, могут быть распакованы gzip-ом только если они содержат один файл, сжатый методом 'deflation'. Эта функция предназначена только для целей конвертирования tar.zip-файлов в формат tar.gz. Для распаковки zip-архивов, содержащих несколько файлов, вместо gunzip используйте unzip.
zcat идентичен gunzip -c. (На некоторых системах zcat может быть установлен как gzcat, в целях обеспечения сохранности оригинальной ссылки на compress.) zcat распаковывает либо файлы по списку из командной строки, либо со стандартного потока ввода с записью разархивированных данных в стандартный поток вывода. zcat распаковывает файлы с правильным заголовком вне зависимости от того, содержат они суффикс .gz или нет.
Gzip использует алгоритм Лемпеля-Зива, применяемый в zip и PKZIP. Получаемая величина сжатия зависит от размеров входных данных и количества повторяющихся байтовых последовательностей. Текстовые данные, такие как исходные коды или просто тексты на английском языке, в среднем сжимаются на 60-70%. Сжатие обычно получается гораздо лучше, чем при использовании алгоритма LZW (используется в compress), кодировании Хаффмана (используется в pack) или адаптивном кодировании Хаффмана (compact).
Сжатие осуществляется всегда, даже если запакованный файл получается немного больше оригинала. В наихудшем случае размер файла увеличивается на несколько байт заголовка gzip, плюс по 5 байт на каждый блок размером 32 Кб, что составляет 0.015% на больших файлах. Обратите внимание, что фактическое число занятых файлом блоков на диске практически никогда не увеличивается. gzip при сжатии/распаковке сохраняет права доступа и временные метки файлов.
compressed size: размер сжатого файла uncompressed size: размер оригинального файла ratio: коэффициент сжатия (0.0%, если неизвестен) uncompressed_name: имя оригинального файла
Размер несжатого файла выводится как -1 для файлов не в формате gzip, таких как .Z-файлы. Чтобы получить размер несжатого файла в таких случаях, можно использовать команду:
zcat файл.Z | wc -c
В комбинации с ключом --verbose отображаются также следующие данные:
method: метод сжатия crc: 32-битный CRC несжатых данных date & time: время создания/изменения несжатого файла
Методы сжатия, поддерживаемые на данный момент: deflate, compress, lzh (compress -H в SCO) и pack. CRC отображается как ffffffff для файлов не в формате gzip.
С ключом --name имя оригинального файла, дата и время берутся из самого архива, если присутствуют.
С ключом --verbose также выводятся общий размер и коэффициент сжатия всех файлов, при условии что все размеры известны. С ключом --quiet не показывается заголовок и итоговая часть.
gunzip -S "" * (*.* для MSDOS)
Предыдущие версии gzip использовали суффикс .z, но в дальнейшем это было изменено, чтобы избежать конфликта с pack.(1).
Несколько сжатых файлов можно объединить в один. В этом случае gunzip распакует все файлы одновременно. Например:
gzip -c файл1 > архив.gz gzip -c файл2 >> архив.gz
и далее
gunzip -c архив
эквивалентно
cat файл1 файл2
В случае повреждения одного из файлов в .gz-архиве, другие могут быть восстановлены (если удалить из архива повреждённый файл). Более высокое сжатие можно получить при архивировании всех файлов одновременно:
cat файл1 файл2 | gzip > архив.gz
сжимает лучше, чем
gzip -c файл1 файл2 > архив.gz
Если вы хотите перепаковать объединённые файлы для достижения большего сжатия, выполните:
gzip -cd старый_архив.gz | gzip > новый_архив.gz
Если в архиве несколько файлов, то размер несжатых данных и CRC, показываемые по ключу --list, относятся только к последнему файлу. Если вам нужен несжатый размер всех файлов, можно использовать:
gzip -cd архив.gz | wc -c
Если вы хотите создать единый архив с множеством файлов так, чтобы их потом можно было извлечь независимо друг от друга, используйте другие архиваторы, такие как tar или zip. GNU tar поддерживает ключ -z, по которому вызывается непосредственно gzip. gzip создан как дополнение к tar-у, а не как замена.
Переменная окружения GZIP может содержать набор ключей по умолчанию для gzip. Эти ключи обрабатываются первыми и могут быть переопределены явным их указанием в командной строке. Например:
для sh: GZIP="-8v --name"; export GZIP для csh: setenv GZIP "-8v --name" для MSDOS: set GZIP=-8v --name
На системах Vax/VMS во избежание конфликта с командой вызова программы такая переменная окружения называется GZIP_OPT.
znew(1), zcmp(1), zmore(1), zforce(1), gzexe(1), zip(1), unzip(1), compress(1), pack(1), compact(1)
Формат файла gzip описан P. Deutsch в "GZIP file format specification version 4.3", <ftp://ftp.isi.edu/in-notes/rfc1952.txt>, Internet RFC 1952 (May 1996). Формат разархивации zip описан P. Deutsch в "DEFLATE Compressed Data Format Specification version 1.3", <ftp://ftp.isi.edu/in-notes/rfc1951.txt>, Internet RFC 1951 (May 1996).
Код возврата в нормальной ситуации равен 0. Если возникла ошибка, код возврата 1. Если вышло предупреждение, код возврата 2.
zcat файл > recover
При записи сжатых данных на ленту обычно нужно дополнять архив нулями до конца блока. Когда архив считан с ленты и передан gunzip на распаковку, gunzip обнаруживает, что после сжатых данных идёт мусор, и по умолчанию выдаёт предупреждение. Для отключения предупреждений используйте ключ --quiet. Этот ключ может быть задан в переменной окружения GZIP, например:
для sh: GZIP="-q" tar -xfz --block-compress /dev/rst0 для csh: (setenv GZIP -q; tar -xfz --block-compr /dev/rst0
В приведённом примере gzip неявно вызывается ключом -z в GNU tar. Имейте в виду, что для записи и чтения архива с ленты необходимо использовать один и тот же размер блока (опция -b в tar). (Этот пример подразумевает, что вы используете версию tar от GNU.)
Формат gzip представляет входной размер модуля 2^32, таким образом опция --list сообщает неправильные размеры не сжатых файлов и коэффициенты сжатия для не архивированных файлов размером 4 и более гигабайт. Чтобы обойти эту проблему, вы можете воспользоваться следующей командой, чтобы определить истинный размер большого распаковываемого файла:
zcat file.gz | wc -c
Ключ --list выдаёт размер как -1 и CRC как ffffffff, если архив находится на устройстве с последовательным доступом.
В некоторых редких случаях ключ --best даёт худшее сжатие, чем метод по умолчанию (-6). Некоторые файлы, содержащие чрезвычайно избыточную информацию, compress сжимает лучше, чем gzip.
Copyright ╘ 1998, 1999, 2001 Free Software Foundation, Inc. Сopyright ╘ 1992, 1993 Jean-loup Gailly
Настоящим предоставляется право изготавливать и распространять дословные копии этого руководства, включая объявление об авторском праве, с условием сохранения данного разрешения на всех копиях.
Настоящим предоставляется право копировать и распространять модифицированные копии этого руководства на условиях лицензионного соглашения для дословного копирования, при условии, что полный окончательный результат будет распространяться на условиях, идентичных условиям распространения данного документа.
Настоящим предоставляется право копировать и распространять переводы данного руководства на другом языке, на вышеупомянутых условиях для изменённых версий, если это уведомление об авторском праве не может быть объявлено в переводе, одобренном Фондом.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |