gunzip(1) — справочная страница Linux
Gzip уменьшает размер именованных файлов с помощью кодирования Лемпеля-Зива (LZ77). По возможности каждый файл заменяется файлом с расширением .gz, сохраняя при этом те же режимы владения, время доступа и модификации. (Расширение по умолчанию -gz для ВМС, г для MSDOS, OS/2 FAT, Windows NT FAT и Atari.) Если файлы не указаны или если имя файла "-", стандартный ввод сжимается до стандартного вывода. Gzip будет пытаться сжимать только обычные файлы. В частности, он будет игнорировать символические ссылки.
Если имя сжатого файла слишком длинное для его файловой системы, gzip обрезает его. Gzip пытается обрезать только те части имени файла, длина которых превышает 3 символа. (Часть разделена точками.) Если имя состоит только из небольших частей, самые длинные части обрезаются. Например, если имена файлов ограничены 14 символами, gzip.msdos.exe сжимается до gzi.msd.exe.gz. Имена не усекаются в системах, в которых нет ограничения на длину имени файла.
По умолчанию, gzip сохраняет исходное имя файла и метку времени в сжатом файле. Они используются при распаковке файла с -Н вариант. Это полезно, когда имя сжатого файла было усечено или когда отметка времени не сохранялась после передачи файла.
Сжатые файлы можно восстановить в исходную форму с помощью gzip -d или же ганзип или же зкат. Если исходное имя, сохраненное в сжатом файле, не подходит для его файловой системы, новое имя создается на основе исходного, чтобы сделать его допустимым.
ганзип получает список файлов в своей командной строке и заменяет каждый файл, имя которого заканчивается на .gz, -gz, .z, -z, _z или .Z и начинается с правильного магического номера, на несжатый файл без исходного расширения. ганзип также распознает специальные расширения .tgz а также .таз как сокращение для .tar.gz а также .tar.Z соответственно. При сжатии, gzip использует .tgz расширение, если это необходимо, вместо усечения файла с .tar расширение.
ганзип в настоящее время может распаковывать файлы, созданные gzip, zip, сжимать, сжимать -H или же пакет. Определение формата ввода происходит автоматически. При использовании первых двух форматов ганзип проверяет 32-битный CRC. За пакет, ганзип проверяет несжатую длину. Стандарт компресс формат не был разработан для проверки согласованности. Однако ганзип иногда может обнаружить плохой файл .Z. Если вы получаете сообщение об ошибке при распаковке файла .Z, не думайте, что файл .Z правильный только потому, что стандартный распаковывать не жалуется. Обычно это означает, что стандарт распаковывать не проверяет свой ввод и с радостью генерирует мусор. Формат сжатия SCO -H (метод сжатия lzh) не включает CRC, но также допускает некоторые проверки согласованности.
Файлы, созданные молния могут быть распакованы с помощью gzip, только если у них есть один элемент, сжатый методом «дефляции». Эта функция предназначена только для облегчения преобразования файлов tar.zip в формат tar.gz. Чтобы извлечь молния файл с одним членом, используйте команду, например ганзип или gunzip -S .zip foo.zip. Чтобы извлечь zip-файлы с несколькими элементами, используйте распаковать вместо пистолет
зкат идентичен ганзип -с. (В некоторых системах зкат может быть установлен как gzcat чтобы сохранить исходную ссылку на сжать.) zcat распаковывает либо список файлов в командной строке, либо стандартный ввод и записывает несжатые данные в стандартный вывод. зкат будет распаковывать файлы с правильным магическим номером, независимо от того, есть ли у них .gz суффикс или нет.
Gzip использует алгоритм Лемпеля-Зива, используемый в молния и ПКЗИП. Полученная степень сжатия зависит от размера входных данных и распределения общих подстрок. Обычно такой текст, как исходный код или английский язык, уменьшается на 60-70%. Сжатие, как правило, намного лучше, чем у LZW (используется в компресс), кодирование Хаффмана (используемое в пакет), или адаптивное кодирование Хаффмана (компактный).
Сжатие выполняется всегда, даже если сжатый файл немного больше исходного. Расширение в худшем случае — это несколько байтов для заголовка файла gzip плюс 5 байтов на каждый блок размером 32 КБ или коэффициент расширения 0,015% для больших файлов. Обратите внимание, что фактическое количество используемых дисковых блоков почти никогда не увеличивается. gzip сохраняет режим, владельца и временные метки файлов при сжатии или распаковке.
gzip формат файла указан в P. Deutsch, GZIP спецификация формата файла версии 4.3, Internet RFC 1952 (май 1996 г.). молния формат дефляции указан в P. Deutsch, СДУВАТЬ Спецификация формата сжатых данных, версия 1.3, Internet RFC 1951 (май 1996 г.).
Опции
-а –ascii Текстовый режим Ascii: преобразование конца строки с использованием местных соглашений. Этот параметр поддерживается только в некоторых системах, отличных от Unix. Для MSDOS CR LF преобразуется в LF при сжатии, а LF преобразуется в CR LF при распаковке. -c –stdout –to-stdout Запись вывода на стандартный вывод; сохранить исходные файлы без изменений. Если имеется несколько входных файлов, выходные данные состоят из последовательности независимо сжатых элементов. Чтобы получить лучшее сжатие, объедините все входные файлы перед их сжатием. -d –распаковать –распаковать Распаковать. -f –сила Принудительное сжатие или распаковка, даже если файл имеет несколько ссылок или соответствующий файл уже существует, или если сжатые данные считываются с терминала или записываются на него. Если входные данные не в формате, распознаваемом сжатие, а если также задана опция –stdout, скопировать входные данные без изменений в стандартный вывод: пусть зкат вести себя как кошка. Если -f не дается, а когда не работает в фоновом режиме, gzip предлагает проверить, следует ли перезаписать существующий файл. -ч –помощь Отобразите экран справки и выйдите. -l –список Для каждого сжатого файла укажите следующие поля:
сжатый размер: размер сжатого файла несжатый размер: размер несжатого файла ratio: коэффициент сжатия (0,0%, если неизвестно) uncompressed_name: имя несжатого файла
Размер несжатого файла указывается как -1 для файлов не в формате gzip, таких как сжатые файлы .Z. Чтобы получить несжатый размер такого файла, вы можете использовать:
zcat-файл.Z | туалет -с
В сочетании с опцией –verbose также отображаются следующие поля:
method: метод сжатия crc: 32-битная CRC несжатых данных date and time: метка времени для несжатого файла
В настоящее время поддерживаются следующие методы сжатия: deflate, Compress, lzh (SCO Compress -H) и Pack. Crc задается как ffffffff для файла, отличного от формата gzip.
С –name несжатые имя, дата и время сохраняются в сжатом файле, если он присутствует.
С параметром –verbose также отображаются общий размер и коэффициент сжатия для всех файлов, если только некоторые размеры неизвестны. С –quiet строки заголовка и итогов не отображаются. -L –лицензия Показать gzip лицензию и выйти. -n –без имени При сжатии не сохранять исходное имя файла и отметку времени по умолчанию. (Исходное имя всегда сохраняется, если оно должно быть усечено.) При распаковке не восстанавливайте исходное имя файла, если оно есть (удалите только gzip суффикс из имени сжатого файла) и не восстанавливать исходную метку времени, если она есть (скопировать ее из сжатого файла). Этот параметр используется по умолчанию при распаковке. -N –имя При сжатии всегда сохраняйте исходное имя файла и отметку времени; это значение по умолчанию. При распаковке восстановить исходное имя файла и отметку времени, если они есть. Этот параметр полезен в системах, в которых есть ограничение на длину имени файла или когда отметка времени была потеряна после передачи файла. -q –тихий Подавить все предупреждения. -r –рекурсивный Перемещайтесь по структуре каталогов рекурсивно.Если какое-либо из имен файлов, указанных в командной строке, является каталогом, gzip спустится в каталог и сожмет все файлы, которые он там найдет (или распакует их в случае ганзип ). -S .suf –суффикс .suf При сжатии используйте суффикс .suf вместо .gz. Можно указать любой непустой суффикс, но следует избегать суффиксов, отличных от .z и .gz, во избежание путаницы при передаче файлов в другие системы.
При распаковке добавьте .suf в начало списка суффиксов, которые нужно попробовать, при получении имени выходного файла из имени входного файла.
пакет(1). -т –тест Тест. Проверьте целостность сжатого файла. -v –подробный Подробный. Отображение имени и процентного сокращения для каждого сжатого или распакованного файла. -V –версия Версия. Отобразите номер версии и параметры компиляции, затем закройте. -# –быстрый –лучший Регулировать скорость сжатия с помощью указанной цифры #, куда -1 или же –быстро указывает самый быстрый метод сжатия (меньшее сжатие) и -9 или же –Лучший указывает самый медленный метод сжатия (наилучшее сжатие). Уровень сжатия по умолчанию -6 (то есть с уклоном в сторону высокого сжатия в ущерб скорости).
Расширенное использование
Несколько сжатых файлов могут быть объединены. В таком случае, ганзип извлечет все члены сразу. Например:
gzip -c файл1 > foo.gz gzip -c файл2 >> foo.gz
эквивалентно
кошачий файл1 файл2
В случае повреждения одного элемента файла .gz другие элементы все еще могут быть восстановлены (если поврежденный элемент удален). Однако вы можете улучшить сжатие, сжав все члены сразу:
кот файл1 файл2 | gzip > foo.gz
сжимает лучше, чем
gzip -c файл1 файл2 > foo.gz
Если вы хотите повторно сжать соединенные файлы, чтобы улучшить сжатие, выполните следующие действия:
gzip -cd старый.gz | gzip > новый.gz
Если сжатый файл состоит из нескольких элементов, несжатый размер и CRC, сообщаемые опцией –list, применяются только к последнему элементу.Если вам нужен несжатый размер для всех элементов, вы можете использовать:
gzip -cd файл.gz | туалет -с
Если вы хотите создать один файл архива с несколькими элементами, чтобы позже можно было извлекать элементы независимо, используйте архиватор, такой как tar или zip. GNU tar поддерживает параметр -z для прозрачного вызова gzip. gzip разработан как дополнение к tar, а не как замена.
Окружающая среда
Переменная среды GZIP может содержать набор параметров по умолчанию для gzip. Эти параметры интерпретируются первыми и могут быть перезаписаны явными параметрами командной строки. Например: для sh: GZIP="-8v –name"; экспортировать GZIP для csh: setenv GZIP "-8v –name" для MSDOS: set GZIP=-8v –name
В Vax/VMS имя переменной окружения — GZIP_OPT, чтобы избежать конфликта с набором символов для вызова программы.
Смотрите также
zновый(1), zcmp(1), зморе(1), zforce(1), gzexe(1), молния(1), распаковать(1), компресс(1), пакет(1), компактный(1)
gzip формат файла указан в P. Deutsch, GZIP версия спецификации формата файла 4.3, , Internet RFC 1952 (май 1996 г.). молния формат дефляции указан в P. Deutsch, СДУВАТЬ Спецификация формата сжатых данных версии 1.3, , Интернет RFC 1951 (май 1996 г.).
Диагностика
Статус выхода обычно равен 0; при возникновении ошибки статус выхода равен 1. Если возникает предупреждение, статус выхода равен 2. Использование: gzip [-cdfhlLnNrtvV19] [суффикс -S] [файл . ] В командной строке были указаны недопустимые параметры. файл: не в формате gzip Файл, указанный для ганзип не был сжат. файл: Поврежденный ввод. Используйте zcat для восстановления некоторых данных. Сжатый файл поврежден. Данные до момента сбоя могут быть восстановлены с помощью
зкат файл > восстановить файл: сжато с хх биты, может справиться только гг биты Файл был сжат (используя LZW) программой, которая могла обрабатывать больше биты чем код распаковки на этом компьютере. Повторно сожмите файл с помощью gzip, который лучше сжимает и использует меньше памяти. файл: уже имеет суффикс .gz — без изменений Предполагается, что файл уже сжат. Переименуйте файл и повторите попытку. файл уже существует; Вы хотите перезаписать (y или n)? Ответьте «y», если вы хотите, чтобы выходной файл был заменен; "н", если нет. gunzip: поврежденный ввод Обнаружено нарушение SIGSEGV, которое обычно означает, что входной файл был поврежден. хх.х% Процент ввода, сохраненный сжатием. (актуально только для -v а также -л.) — не обычный файл или каталог: игнорируется Если входной файл не является обычным файлом или каталогом (например, символическая ссылка, сокет, FIFO, файл устройства), он остается без изменений. — имеет хх остальные ссылки: без изменений Входной файл имеет ссылки; он оставлен без изменений. Видеть п(1) для получения дополнительной информации. Использовать -f флаг для принудительного сжатия многосвязных файлов.
Предостережения
При записи сжатых данных на ленту обычно необходимо дополнять вывод нулями до границы блока. Когда данные считаны и весь блок передается в ганзип для декомпрессии, ганзип обнаруживает лишний мусор после сжатых данных и по умолчанию выдает предупреждение. Вы должны использовать параметр –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-файл.gz | туалет -с
Опция –list сообщает о размерах как -1 и crc как ffffffff, если сжатый файл находится на носителе без возможности поиска.
В некоторых редких случаях параметр –best дает худшее сжатие, чем уровень сжатия по умолчанию (-6). В некоторых сильно избыточных файлах компресс сжимает лучше, чем gzip.
Уведомление об авторских правах
Copyright © 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
Copyright © 1992, 1993 Жан-Лу Гайи
Разрешается изготовление и распространение дословных копий данного руководства при условии, что уведомление об авторских правах и это уведомление о разрешении сохраняются на всех копиях.
Разрешается копировать и распространять модифицированные версии этого руководства на условиях дословного копирования, при условии, что вся полученная производная работа распространяется на условиях уведомления о разрешении, идентичного настоящему.
Разрешается копировать и распространять переводы этого руководства на другой язык при указанных выше условиях для измененных версий, за исключением того, что это уведомление о разрешении может быть указано в переводе, одобренном Фондом.