Gzip уменьшает размер именованных файлов с использованием кодировки Lempel-Ziv (LZ77). Когда это возможно, каждый файл заменяется файлом с расширением .gz, , сохраняя те же режимы владения, время доступа и изменения. (Расширением по умолчанию является -gz для VMS, z для MSDOS, OS/2 FAT, Windows NT FAT и Atari.) Если файлы не указаны или если файл имя – “-“, стандартный ввод сжимается до стандартного вывода. Gzip будет пытаться сжать только обычные файлы. В частности, он будет игнорировать символические ссылки.
название
- gzip, gunzip, zcat – сжатие или расширение файлов
конспект
- gzip [ -acdfhlLnNrtvV19 ] [ -S суффикс ] [ name … ]
- gunzip [ -acfhlLnNrtvV ] [ -S суффикс ] [ name … ]
- zcat [ -fhLV ] [ name … ]
Если имя сжатого файла слишком длинное для его файловой системы, 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 появляется ошибка, не думайте, что файл .Z правильный, просто потому, что стандарт распаковка не вызывает жалоб. Как правило, это означает, что стандарт uncompress не проверяет свой ввод и успешно генерирует вывод мусора. Формат сжатия SCO -H (метод сжатия lzh) не включает в себя CRC, но также допускает некоторые проверки согласованности.
Файлы, созданные zip , могут быть распакованы gzip только в том случае, если в них есть один элемент, сжатый методом «дефляция». Эта функция предназначена только для преобразования файлов tar.zip в формат tar.gz. Чтобы извлечь zip-файлы с несколькими участниками, используйте unzip вместо gunzip.
zcat идентичен gunzip -c. (в некоторых системах zcat может быть установлен как gzcat для сохранения исходной ссылки на compress.) zcat распаковывает либо список файлов в командной строке, либо его стандартный ввод и записывает несжатые данные в стандартный вывод , zcat распаковывает файлы с правильным магическим номером независимо от того, имеют ли они суффикс .gz или нет.
Gzip использует алгоритм Лемпеля-Зива, используемый в zip и PKZIP. Степень сжатия зависит от размера входных данных и распределения общих подстрок. Обычно текст, такой как исходный код или английский, уменьшается на 60-70%. Сжатие, как правило, намного лучше, чем LZW (как используется в compress ), кодирование Хаффмана (как используется в pack ) или адаптивное кодирование Хаффмана ( compact ).
Сжатие всегда выполняется, даже если сжатый файл немного больше исходного.В худшем случае расширение составляет несколько байтов для заголовка файла gzip, плюс 5 байтов на каждый 32-килобайтный блок или коэффициент расширения 0,015% для больших файлов. Обратите внимание, что фактическое количество используемых дисковых блоков почти никогда не увеличивается. gzip сохраняет режим, владельца и временные метки файлов при сжатии или распаковке.
ОПЦИИ
-a –ascii
- Текстовый режим Ascii: конвертировать конец строки, используя локальные соглашения. Эта опция поддерживается только в некоторых не-Unix системах. Для MSDOS CR LF преобразуется в LF при сжатии, а LF преобразуется в CR LF при распаковке.
-c –stdout –to-stdout
- Записать вывод на стандартный вывод; сохранить оригинальные файлы без изменений. Если имеется несколько входных файлов, вывод состоит из последовательности независимо сжатых элементов. Чтобы получить лучшее сжатие, объедините все входные файлы перед сжатием.
-d –decompress –uncompress
- Распаковка.
-f –force
- Принудительное сжатие или распаковка, даже если файл имеет несколько ссылок или соответствующий файл уже существует, или если сжатые данные считываются или записываются в терминал. Если входные данные не в формате, распознаваемом gzip , и если также указана опция –stdout, скопируйте входные данные без изменений в стандартный вывод: let zcat Вести себя как cat. Если -f не задано и когда он не работает в фоновом режиме, gzip предложит проверить, должен ли существующий файл быть перезаписан
-h –help
- Отобразите экран справки и выйдите.
-l –list
Для каждого сжатого файла перечислите следующие поля:
- Сжатый размер: размер сжатого файла
- Несжатый размер: размер несжатого файла
- Степень сжатия (0.0%, если неизвестен): Коэффициент
- Uncompressed_name: имя исходного файла
Несжатый размер задается как -1 для файлов не в формате gzip, таких как сжатые файлы .Z. Чтобы получить несжатый размер для такого файла, вы можете использовать:
- zcat file.Z | туалет -c
В сочетании с параметром –verbose также отображаются следующие поля:
- Метод: метод сжатия
- CRC: 32-битный CRC несжатых данных
- Дата и время: штамп времени для несжатого файла
В настоящее время поддерживаются следующие методы сжатия: deflate, compress, lzh (SCO compress -H) и pack. Crc указывается как ffffffff для файла не в формате gzip.
При использовании –name несжатое имя, дата и время сохраняются в файле сжатия, если он присутствует.
С помощью –verbose также отображаются итоговые размеры и степень сжатия для всех файлов, если только некоторые размеры неизвестны. При использовании –quiet строки заголовка и итога не отображаются.
-L –license
- Отобразите лицензию gzip и выйдите.
-n –no-name
- При сжатии не сохраняйте исходное имя файла и отметку времени по умолчанию. (Исходное имя всегда сохраняется, если имя должно было быть усечено.) При распаковке не восстанавливайте исходное имя файла, если оно присутствует (удалите только суффикс gzip из сжатого имени файла) и не восстановить оригинальную метку времени, если она есть (скопировать ее из сжатого файла). Эта опция используется по умолчанию при распаковке.
-N –name
- При сжатии всегда сохраняйте исходное имя файла и отметку времени; это по умолчанию. При распаковке восстановите исходное имя файла и отметку времени, если они есть. Эта опция полезна в системах, которые имеют ограничение на длину имени файла или когда метка времени была потеряна после передачи файла.
-q –quiet
- Подавить все предупреждения.
-r –recursive
- Перемещайтесь по структуре каталогов рекурсивно. Если любое из имен файлов, указанных в командной строке, является каталогами, gzip спустится в каталог и сожмет все найденные файлы (или распакует их в случае gunzip ).
-S .suf –suffix .suf
Используйте суффикс .suf вместо .gz. Можно указать любой суффикс, но следует избегать суффиксов, отличных от .z и .gz, чтобы избежать путаницы при передаче файлов в другие системы. Пустой суффикс вынуждает gunzip попробовать распаковать все файлы независимо от суффикса, как в:
- Gunzip -S “” * (*. * для MSDOS)
Предыдущие версии gzip использовали суффикс .z. Это было изменено, чтобы избежать конфликта с pack (1).
-t –test
- Тестовое задание. Проверьте целостность сжатого файла.
-v –verbose
- Подробный.Отображение имени и процентного сокращения для каждого файла, сжатого или распакованного.
-V – версия
- Версия. Отобразите номер версии и параметры компиляции, затем выйдите.
– # –fast –best
- Регулируйте скорость сжатия, используя указанную цифру # , где -1 или – fast указывают на самый быстрый метод сжатия (меньшее сжатие) и -9 или – best указывает на самый медленный метод сжатия (наилучшее сжатие). Уровень сжатия по умолчанию составляет -6 (то есть смещен в сторону высокого сжатия за счет скорости).
Расширенное использование
Несколько сжатых файлов могут быть объединены. В этом случае gunzip извлечет всех участников одновременно. Например:
- GZIP -c file1> foo.gz
- GZIP -c file2 >> foo.gz
затем
- Gunzip -c Foo
эквивалентно
- кот file1 file2
В случае повреждения одного элемента из файла .gz, другие члены все еще могут быть восстановлены (если поврежденный элемент удален). Однако вы можете получить лучшее сжатие, сжав все элементы сразу:
- Кошка file1 file2 | GZIP> foo.gz
сжимает лучше чем
- GZIP -c file1 file2> foo.gz
Если вы хотите сжимать объединенные файлы для лучшего сжатия, выполните:
- GZIP -CD old.gz | GZIP> new.gz
Если сжатый файл состоит из нескольких элементов, несжатый размер и CRC, указанные параметром –list, применяются только к последнему элементу. Если вам нужен несжатый размер для всех членов, вы можете использовать:
- GZIP -CD file.gz | туалет -c
Если вы хотите создать один архивный файл с несколькими членами, чтобы впоследствии их можно было извлекать независимо, используйте архиватор, такой как tar или zip. GNU tar поддерживает опцию -z для прозрачного вызова gzip. gzip разработан как дополнение к tar, а не как замена.
Смотрите также
- сжимать (1)
Используйте команду man (% man ), чтобы увидеть, как команда используется на вашем конкретном компьютере.
Формат файла gzip указан в P. Deutsch, версия спецификации формата файла GZIP 4.3, Internet RFC 1952 (май 1996). Формат дефляции zip указан в P. Deutsch, DEFLATE, сжатая спецификация формата данных версии 1.3, Internet RFC 1951 (май 1996).