ryg

Архиваторы gzip, gunzip, zcat для Mac OS X


gzip, gunzip, zcat - сжимает или распаковывают файлы

Синтаксис:

    gzip [ -acdfhlLnNrtvV19 ] [-S suffix] [ name ...  ]
    gunzip [ -acfhlLnNrtvV ] [-S suffix] [ name ...  ]
    zcat [ -fhLV ] [ name ...  ]

Описание:

Gzip - сжимает указанные файлы используя алгоритм Lempel-Ziv (LZ77). По возможности каждый сжимаемый файл будет заменяться файлом с расширением .GZ (при сохранениии владельца, времени доступа и времени изменение). Gzip сжимает только обычные файлы и не трогает символические ссылки.

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

В упакованном файле сохраняется полное имя файла и время создания (по умолчанию). При распаковке с параметром -N данные значения будут восстановлены. Также могут быть с параметров -d или с помощью gunzip или zcat. Если оригинальное имя файла невозможно в системе, где распаковывается файл, то новое имя будет сконструировано по принципам перечисленным выше.

gunzip получает список файлов из командной строки и распаковывает файлы имена которых, заканчиваются на:

  • .gz
  • -gz
  • .z
  • -z
  • _z
  • .Z

gunzip также распознает типы :

  • .tgz
  • .taz
  • .tar.gz 
  • .tar.Z

gunzip может распаковывать файлы созданные gzip, zip, compress, compress -H или pack. Определение типа архива происходит автоматически. Для форматов созданных gzip и zip проверяется 32-х битный CRC.  Для стандартного compress на предусмотрен контроль целостности архивного файла. Однако иногда программа способна распознать нарушения в структуре упакованного .Z файла. 

zcat идентично gunzip -c. 

gzip использует алгоритм Lempel-Ziv аналогичный используемому в zip и PKZIP. При сжатии английского текста размер файла будет уменьшен на 60-70%. Сжатие в целом лучше архивации LZW (используется в compress), кода Хафмана (Huffman) используемого в pack или адаптивного кода Хафмана (compact).

Параметры команды:

-a  --ascii Текстовый режим. Преобразовывать символы конца строки с учетом локальных установок. Этот параметр поддерживается только в некоторых не Unix системах
-c --stdout
--to-stdout
Стандартный вывод в поток, не изменяя входные файлы
-d --decompress
--uncompress
Распаковать
-f --force  
-h --help Вывести на экран справку и завершить программу
-l --list Для каждого сжатого файла вывести следующие поля:
  • Размер сжатого файла
  • Размер несжатого файла
  • Процент сжатия (если сжатие не производилось, будет выведено 0%)
  • Имя исходного файла
Для файлов сжатых не gzip (например .Z файл) выводится -1. Для таких файлов необходимо использовать команду:
	zcat file.Z | wc -c

В сочетании с параметром -v дополнительно будут выведены :

  • метод компрессии
  • 32-битная контрольная сумма
  • дата и время несжатого файла
-L  --license Вывести лицензию gzip и завершить программу
-n --no-name Не сохранять в сжатом файле оригинальное имя файла, его дату и время. Соответственно при распаковке эти данные не будут восстановлены
-N --name Обязательно сохранить в сжатом файле имя оригинального файла, его дату и время.
-q --quiet Не выводить предупреждения
-r --recursive Рекурсивно. Если в качестве файла будет указана папка, то сжаты будут все файлы, находящиеся в данной папке и ее подпапках.
-S .suf --suffix .suf Изменить расширение фала .gz на .suf (который вы укажете, например, для  переноса в MS-DOS или Windows можно указать .zip)
-t --test Проверить целостность сжатого файла
-v --verbose Отобразить имя и процент сжатия для каждого обрабатываемого файла
-V --version Вывести данные о версии и закрыть.
-#  --fast --best Выбор между производительностью сжатия и его качеством. В качестве параметра # - указывается цифра от 1 до 9. 
-1 самое быстрое сжатие, но наименьший процент сжатия
-9 самое медленное, но наиболее полное.
>По умолчанию данный параметр имеет значение -6

Примеры:

Можно добавлять файлы в архив, например:

		gzip -c file1  > foo.gz
		gzip -c file2 >> foo.gz

Но сжатие будет лучше, если использовать следующую команду

		gzip -c file1 file2 > foo.gz

Связанные материалы:

zip      - Архивировать утилитой zip
tar      - Утилита архивирования
bzip2  - Упаковать или распаковать файлы в командной строке терминала
ditto   - Скопировать и сделать резервную копию файлов
 

Весь список команд терминала OS X