Шрифт:
Далее мы запустили программу gunzip, чтобы распаковать файл. После этого, как видите, сжатая версия была замещена оригиналом, и снова с теми же разрешениями и временем.
Программа gzip имеет множество параметров, часть которых описана в табл. 18.1.
Таблица 18.1. Параметры команды gzip
Параметр
Описание
– c
Выводит результат на стандартный вывод и сохраняет оригинальные файлы. Аналогичный эффект дают параметры --stdout и --to-stdout
– d
Распаковывает файл. С этим параметром gzip действует как gunzip. Аналогичный эффект дают параметры --decompress и --uncompress
– f
Принудительное (force) сжатие, даже если сжатая версия оригинального файла уже существует. Аналогичный эффект дает параметр --force
– h
Выводит информацию о порядке использования. Аналогичный эффект дает параметр --help
– l
Выводит список статистик для каждого сжатого файла. Аналогичный эффект дает параметр --list
– t
Проверяет целостность сжатого файла. Аналогичный эффект дает параметр --test
– v
Выводит в процессе работы сообщения с информацией о ходе сжатия. Аналогичный эффект дает параметр --verbose
– число
Устанавливает степень сжатия. Числом может быть любое целочисленное значение в диапазоне от 1 (высокая скорость работы, низкая степень сжатия) до 9 (низкая скорость работы, высокая степень сжатия). Значения 1 и 9 можно также заменить параметрами --fast и --best соответственно. По умолчанию используется значение 6
Вернемся к нашему примеру:
[me@linuxbox ~]$ gzip foo.txt
[me@linuxbox ~]$ gzip -tv foo.txt.gz
foo.txt.gz: OK
[me@linuxbox ~]$ gzip -d foo.txt.gz
Здесь мы заменили файл foo.txt его сжатой версией с именем foo.txt.gz. Затем проверили целостность сжатой версии, передав параметры -t и -v. В заключение мы распаковали файл, вернув его исходное состояние.
gzip можно также использовать несколько необычным способом, через стандартные ввод и вывод:
[me@linuxbox ~]$ ls -l /etc | gzip > foo.txt.gz
Эта команда создает сжатую версию списка с содержимым каталога.
Программа gunzip, которая распаковывает файлы, сжатые с помощью gzip, предполагает, что имена файлов оканчиваются расширением .gz, поэтому его можно не указывать при условии, что имя файла в команде не соответствует существующему несжатому файлу:
[me@linuxbox ~]$ gunzip foo.txt
Если цель только в том, чтобы просмотреть содержимое сжатого текстового файла, сделать это можно так:
[me@linuxbox ~]$ gunzip -c foo.txt | less
Вместе с gzip обычно поставляется программа zcat, которая действует подобно программе gunzip с параметром -c. Она применяется к файлам, сжатым с помощью gzip, по аналогии с командой cat:
[me@linuxbox ~]$ zcat foo.txt.gz | less
ПРИМЕЧАНИЕ
Существует также программа zless. Она заменяет собой конвейер, представленный выше.
bzip2 — высокая степень сжатия ценой скорости
Программа bzip2 Джулиана Сюарда похожа на программу gzip, но использует иной алгоритм, который обеспечивает более высокую степень сжатия ценой снижения скорости работы. Во многих отношениях она действует точно так же, как gzip. Файл, сжатый с помощью bzip2, получает расширение .bz2:
[me@linuxbox ~]$ ls -l /etc > foo.txt
[me@linuxbox ~]$ ls -l foo.txt
– rw-r--r-- 1 me me 15738 2012-10-17 13:51 foo.txt
[me@linuxbox ~]$ bzip2 foo.txt
[me@linuxbox ~]$ ls -l foo.txt.bz2
– rw-r--r-- 1 me me 2792 2012-10-17 13:51 foo.txt.bz2
[me@linuxbox ~]$ bunzip2 foo.txt.bz2
Как видите, bzip2 можно использовать так же, как gzip. Все параметры программы gzip (кроме -r), представленные выше, поддерживаются также программой bzip2. Но имейте в виду, что параметр степени сжатия (-число) имеет несколько иной смысл для bzip2. В паре с bzip2 поставляются программы bunzip2 и bzcat для распаковывания файлов.