Сжатие
или
распаковка файлов (UNIX)
Синтаксис:
Сжатие/распаковка
файлов:
gzip
[-cdfhLlNnqrtVv19]
[-S суффикс]
[имя...]
Только
распаковка:
gunzip
[-cfhLlNnqrtvV]
[имя...]
Запуск
утилиты
cat для сжатого файла:
zcat
[-hLV]
[имя...]
Поддерживаемые
платформы:
QNX
Neutrino,
Microsoft Windows
Опции:
-c
Запись
вывода
в стандартный поток вывода без
изменения исходных файлов. При наличии
нескольких входных файлов вывод состоит
из последовательности независимо сжатых
элементов. Для оптимизации сжатия перед
началом операции следует выполнить
конкатенацию всех входных файлов.
-d
Распаковать.
-f
Принудительно
сжать
или распаковать файл, даже если
он содержит несколько ссылок или
соответствующий файл уже существует.
Если опция -f
не указана, то в случае выполнения
утилиты не в фоновом режиме gzip
запрашивает подтверждение перезаписи
существующего файла.
Примечание.
Для
сжатия или распаковки файлов в
файловой системе RAM (/dev/shmem)
используется
опция -
f.
-h
Вывести
справку.
-L
Отобразить
лицензию
gzip.
-l
Вывести
содержимое
сжатого файла в виде списка.
-N
Сохранить
или
восстановить исходное имя и метку
времени.
-n
Не
сохранять
и не восстанавливать исходное
имя и метку времени.
-q
Скрыть
все
предупреждения.
-r
Выполнить
рекурсивный
переход по структуре
каталогов. Если какое-либо из указанных
в командной строке имен файлов является
именем каталога, утилита gzip
переходит в каталог и выполняет сжатие
найденных там файлов (или их распаковку
в случае использования утилиты gunzip).
-S
суффикс
Использовать
указанный
суффикс
в сжатых файлах.
-t
Выполнить
тестирование.
Проверить целостность
сжатого файла.
-V
Версия.
Отобразить
номер версии и опции
компиляции.
-v
Вывести
расширенную
информацию. Отобразить имя
и сокращение размера в процентах для
каждого сжатого файла.
-1
-9
Регулировать
скорость
сжатия, где -1
(один) – метод сжатия с наивысшей
скоростью (наименьшее сжатие), а -9
– метод сжатия с наименьшей скоростью
(оптимальное сжатие).
Описание:
Утилита
gzip
сокращает размер указанных файлов с
помощью алгоритма кодировки Lempel-Ziv
(LZ77). Если возможно, каждый файл заменяется
файлом с расширением .gz
при сохранении данных о режиме,
принадлежности, времени доступа и
изменения. (Расширение -z
используется для VMS, z
– для MSDOS, OS/2 и Atari.) Если файлы не указаны,
выполняется сжатие стандартного потока
ввода в стандартный поток вывода. Если
новое имя файла является слишком длинным,
утилита gzip
усекает его с сохранением исходного
имени файла в сжатом файле. Утилита gzip
выполняет попытку сжатия только
стандартных файлов. В частности, она
игнорирует символьные ссылки.
Для
восстановления
сжатых файлов до исходного
вида используются утилиты gzip
-d,
gunzip
или zcat.
Примечание.
На
данные утилиты распространяются
условия общедоступной лицензии GNU Public
License (GPL). Они предназначены для использования
в системах разработки программ.
Утилита
gunzip
заменяет каждый файл из списка в командной
строке, имя которого оканчивается на
.gz,
.GZ
или -z,
а
начинается с корректного "магического"
числа, несжатым файлом без исходного
расширения. Эта утилита также распознает
специальные выражения .tgz
и .taz
в качестве условных обозначений для
.tar.gz
или .tar.GZ.
Утилита
gunzip
в настоящее время может распаковать
файлы, созданные посредством утилит
gzip,
zip,
compress
или pack.
Формата
ввода определяется автоматически.
При использовании первых двух форматов
утилита gunzip
проверяет 32-разрядный CRC. Для формата
pack
gunzip
проверяет длину в несжатом виде. Формат
сжатия не предусматривает проверок
целостности. Однако в некоторых случаях
утилита gunzip
может обнаружить поврежденный файл
.GZ.
При
ошибке распаковки файла .GZ
не следует полагать, что файл .GZ
является корректным только по причине
отсутствия предупреждений со стороны
стандартной утилиты uncompress.
Как
правило, это означает, что стандартная
утилита uncompress
не проверяет входные данные и генерирует
некорректный вывод.
Утилита
gzip
используется для распаковки файлов,
созданных посредством zip,
только
в том случае, если эти файлы
включают один компонент, сжатый методом
"deflation". Эта функция предназначена
только для преобразования файлов tar.zip
в формат tar.gz.
Для
извлечения файлов zip
с несколькими компонентами следует
использовать вместо gunzip
утилиту unzip.
(Обратите
внимание, что утилита unzip
не входит в комплект поставки QNX Neutrino.)
Утилита
zcat
идентична gunzip
-c.
(В
некоторых системах утилиту zcat
можно установить в качестве gzcat
с сохранением исходной ссылки на утилиту
compress.)
Утилита
zcat
выполняет распаковку файлов из списка
в командной строке или из стандартного
ввода и записывает извлеченные данные
в стандартный поток вывода. Она
распаковывает файлы с корректным
"магическим" числом независимо от
наличия суффикса .gz.
Утилита
gzip
использует алгоритм Lempel-Ziv, применяемый
в zip
и PKZIP.
Общее
сжатие зависит от размера входного
файла и распределения общих подстрок.
Как правило, текст (исходный текст или
текст на английском языке) сокращается
на 60–70%. Качество сжатия, как правило,
выше, чем при использовании алгоритма
кодировки LZW (compress),
метода
Хаффмана (pack)
или
адаптивного метода Хаффмана
(compact).
Сжатие
выполняется
даже в том случае, если
сжатый файл превышает исходный по
размеру. Самый неблагоприятный результат
– увеличение на несколько байтов,
используемых для заголовка файла gzip,
плюс
на 5 байтов на каждый блок из 32 КБ
либо, для крупных файлов, увеличение на
0,015%. При сжатии и распаковке утилита
gzip
сохраняет данные о режиме и принадлежности,
а также временные метки файлов.
Можно
выполнить
конкатенацию нескольких
сжатых файлов. В этом случае утилита
gunzip
извлекает все компоненты одновременно.
Пример:
gzip
-c
file1 > foo.gz
gzip
-c
file2 >> foo.gz
При
этом
запись:
gunzip
-c
foo
эквивалентна
следующей
записи:
cat
file1
file2
В
случае
повреждения одного из компонентов
файла .gz
другие компоненты можно восстановить
(при условии удаления поврежденного
компонента). Однако эффективность сжатия
можно повысить путем одновременного
выполнения операции для всех компонентов:
cat
file1
file2 | gzip > foo.gz
Сжатие
выполняется
более эффективно, чем при
использовании следующей команды:
gzip
-c
file1 file2 > foo.gz
Повторное
сжатие
составных файлов для усиления
степени сжатия выполняется с помощью
следующей команды:
zcat
old.gz
| gzip > new.gz
Переменные
среды:
GZIP
Набор
опций
по умолчанию для утилиты gzip.
Эти
опции интерпретируются первыми и
могут быть перезаписаны явными параметрами
командной строки. Пример:
export
GZIP="-8
-v"
Статус
завершения:
2
Операция
выполнена
успешно, но, возможно, не на
100%; в процессе создано предупреждение.
1
Возникла
ошибка;
операция завершена неуспешно.
0
Операция
выполнена
успешно.
Автор:
GNU
Предупреждения:
Расширение
.gz
также уже используется утилитой pack
в UNIX. Прозрачная распаковка для программ,
для которых файлы .gz
должны иметь формат "pack", достигается
путем создания привязки gzip
к pcat.