zcat — команда Linux

Gzip уменьшает размер именованных файлов с помощью кодировки Lempel-Ziv (LZ77). По возможности каждый файл заменяется на файл с расширением. .GZ, при сохранении тех же режимов владения, времени доступа и модификации. (Расширение по умолчанию -GZ для VMS, Z для MSDOS, OS / 2 FAT, Windows NT FAT и Atari.) Если файлы не указаны или имя файла — «-», стандартный ввод сжимается до стандартного вывода. Gzip будет пытаться сжать только обычные файлы. В частности, он будет игнорировать символические ссылки.

имя

  • gzip, gunzip, zcat — сжатие или расширение файлов 

конспект

  • GZIP [ -acdfhlLnNrtvV19 ] [-суффикс S] [ имя … ] 
  • Gunzip [ -acfhlLnNrtvV ] [-суффикс S] [ имя … ] 
  • zcat [ -fhLV ] [ имя … ]  

Если имя сжатого файла слишком длинное для его файловой системы, 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 а также .Таз как сокращение для .tar.gz а также .tar.Z соответственно. При сжатии gzip использует .TGZ расширение, если необходимо, вместо усечения файла с .деготь расширение.

В настоящее время gunzip может распаковывать файлы, созданные с помощью gzip, zip, compress, compress -H или pack. Определение входного формата происходит автоматически. При использовании первых двух форматов gunzip проверяет 32-битный CRC. Для упаковки, gunzip проверяет несжатую длину. Стандартный формат сжатия не предназначен для проверки согласованности. Тем не менее, gunzip иногда может обнаружить плохой файл .Z. Если вы получили ошибку при распаковке .Z-файла, не думайте, что .Z-файл правильный, просто потому, что стандартная распаковка не вызывает жалоб. Как правило, это означает, что стандартный uncompress не проверяет свои входные данные и успешно генерирует вывод мусора. Формат сжатия SCO -H (метод сжатия lzh) не включает в себя CRC, но также допускает некоторые проверки согласованности.

Файлы, созданные с помощью zip, могут быть распакованы с помощью gzip, только если в них есть один элемент, сжатый методом «дефляция». Эта функция предназначена только для преобразования файлов tar.zip в формат tar.gz. Чтобы извлечь zip-файлы с несколькими участниками, используйте unzip вместо gunzip.

zcat идентичен gunzip -с. (В некоторых системах zcat может быть установлен как gzcat для сохранения исходной ссылки для сжатия.) Zcat распаковывает либо список файлов в командной строке, либо его стандартный ввод и записывает несжатые данные в стандартный вывод. zcat распакует файлы, которые имеют правильный магический номер, независимо от того, имеют ли они .GZ суффикс или нет.

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

Сжатие всегда выполняется, даже если сжатый файл немного больше исходного. В худшем случае расширение составляет несколько байтов для заголовка файла gzip, плюс 5 байтов на каждый 32-килобайтный блок или коэффициент расширения 0,015% для больших файлов. Обратите внимание, что фактическое количество используемых дисковых блоков почти никогда не увеличивается. gzip сохраняет режим, владельца и временные метки файлов при сжатии или распаковке.

ПАРАМЕТРЫ

—ascii

  • Текстовый режим Ascii: конвертировать конец строки, используя локальные соглашения. Эта опция поддерживается только в некоторых не-Unix системах. Для MSDOS CR LF преобразуется в LF при сжатии, а LF преобразуется в CR LF при распаковке.

-c —stdout —to-stdout

  • Записать вывод на стандартный вывод; сохранить оригинальные файлы без изменений. Если имеется несколько входных файлов, вывод состоит из последовательности независимо сжатых элементов. Чтобы получить лучшее сжатие, объедините все входные файлы перед сжатием.

-d —decompress —uncompress

  • Распаковка.

-сила

  • Принудительное сжатие или распаковка, даже если файл имеет несколько ссылок или соответствующий файл уже существует, или если сжатые данные считываются или записываются в терминал. Если входные данные не в формате, распознаваемом gzip, и если также указана опция —stdout, скопируйте входные данные без изменений в стандартный вывод: пусть zcat ведет себя как cat. Если  не предоставляется, и когда 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 — имя

  • При сжатии всегда сохраняйте исходное имя файла и отметку времени; это по умолчанию. При распаковке восстановите исходное имя файла и отметку времени, если они есть. Эта опция полезна в системах, которые имеют ограничение на длину имени файла или когда метка времени была потеряна после передачи файла.

-q — тихий

  • Подавить все предупреждения.

-r — рекурсивный

  • Перемещайтесь по структуре каталогов рекурсивно. Если какое-либо из имен файлов, указанных в командной строке, является каталогом, gzip спустится в каталог и сожмет все найденные там файлы (или распакует их в случае gunzip).

-S .suf —suffix .suf

Используйте суффикс .suf вместо .gz. Можно указать любой суффикс, но следует избегать суффиксов, отличных от .z и .gz, чтобы избежать путаницы при передаче файлов в другие системы. Пустой суффикс вынуждает gunzip попробовать распаковать все файлы независимо от суффикса, как в:

  • Gunzip -S «» * (*. * для MSDOS)

Предыдущие версии gzip использовали суффикс .z. Это было изменено, чтобы избежать конфликта с пакетом (1).

-т — тест

  • Контрольная работа. Проверьте целостность сжатого файла.

-V — Глагол

  • Подробный. Отображение имени и процентного сокращения для каждого файла, сжатого или распакованного.

-V — версия

  • Версия. Отобразите номер версии и параметры компиляции, затем выйдите.

-# —fast —best

  • Регулируйте скорость сжатия с помощью указанной цифры #, где -1 или же —быстрый указывает на самый быстрый метод сжатия (меньше сжатия) и -9 или же —Лучший указывает на самый медленный метод сжатия (лучшее сжатие). Уровень сжатия по умолчанию -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).  

Ссылка на основную публикацию