Для того, чтобы распаковать архив, используйте команду
[user]$ gzip -d файл_архива
или
[user]$ gunzip файл_архива
Исходные файлы после сжатия удаляются, остается только архивный файл (файлы перемещаются в архив), а при разархивации удаляется архив.
Перечислим кратко другие полезные опции программы gzip.
Таблица 4.6. Основные опции программы gzip
Опция Значение -h, --help Вызов краткой помощи по использованию программы -l, --list Выдает имя файла, содержащегося в архиве, его объем и степень сжатия -L, --license Отображает номер версии и лицензию на программу -N, --name Сохранять (или восстанавливать) исходное имя и время создания файла -n, --no-name Не сохранять (не восстанавливать) исходное имя и время создания файла -q, --quiet Подавляет выдачу на экран предупреждающих сообщений -r, --recursive Рекурсивно обрабатывать подкаталоги (используется в случае. когда задан шаблон имен обрабатываемых файлов) -S suf, --suffix .suf Добавить суффикс .suf к имени сжатого файла (вместо добавляемого по умолчанию суффикса gz; но учтите, что при разархивации файлов с суффиксами, отличными от gz, программа вас не поймет) -t, --test Протестировать архивный файл -v, --verbose Выдача дополнительных сообщений в процессе работы программы -V, --version Отобразить версию программы -1, --fast Быстрое сжатие -9, --best Более высокая степень сжатия
Поскольку программа gzip не умеет сохранять в одном архиве несколько файлов, то обычно ее применяют для сжатия архивов, созданных программой tar. Более того, среди опций программы tar имеется специальная опция -z, позволяющая сразу после создания сжать его с помощью программы gzip. Для выполнения такого сжатия надо использовать команду tar примерно следующим образом:
[user]$ tar -czf имя_архива шаблон_имен_файлов (или имя_каталога)
Только имейте в виду, что в этом случае суффикс .gz не добавляется автоматически к имени создаваемого архива, поэтому лучше сразу задать имя архива с указанием обеих суффиксов: имя.tar.gz.
4.7.3. Программа bzip2
В последнее время все чаще вместо программы gzip используется архиватор bzip2, который обеспечивает более высокую степень сжатия и работает несколько быстрее. Команда bzip2 обычно не устанавливается автоматически при инсталляции Linux. Но она имеется на дистрибутивном диске в виде rpm-пакета и ее легко установить. (Как это сделать, см. в гл. 10.)
Работает bzip2 примерно так же, как команда gzip, т. е. замещает каждый файл, имя которого задано в командной строке, сжатой версией, добавляя к имени файла суффикс .bz2.
Сжатый файл имеет то же самое время модификации, права доступа и, по возможности, того же владельца, что и исходный файл, что дает возможность восстановить эти атрибуты при извлечении файлов из архива.
В некоторых случаях сжатый файл может оказаться даже больше по размеру, чем исходный. Это происходит, например, для файлов длиной менее 100 байт, потому что механизм сжатия использует заголовок длиной около 50 байт. Для файлов, представляющих собой случайную последовательность символов (в том числе для выходных файлов большинства файловых архиваторов) длина файла увеличивается примерно на 0.5%.
Команда bunzip2 (или bzip2 -d) разархивирует указанные в командной строке файлы. Если эти файлы не были созданы программой bzip2, они не будут разархивироваться, будет выдано соответствующее предупреждение. При разархивации bzip2 пытается угадать имя разархивируемого файла по следующим правилам:
• filename.bz2 заменяется на filename;
• filename.bz заменяется на filename;
• filename.tbz2 заменяется на filename.tar;
• filename.tbz заменяется на filename.tar;
• любое другое "имя" заменяется на "имя.out".
Опции командной строки для bzip2 очень похожи на опции команды gzip, но все же они не идентичны. Приведу краткую сводку наиболее необходимых в работе опций.
Таблица 4.7. Основные опции программы bzip2
Опция Значение -d, --decompress Принудительная разархивация. Эта опция необходима в силу того, что bzip2, bunzip2 и bzcat - это на самом деле одна и та же программа, которая сама по расширению имени файла принимает решение о том, какое действие надо выполнить над указанным файлом. Опция -d отключает этот механизм и заставляет программу разархивировать указанные файлы -z, --compress Принудительная архивация -t, --test Проверка целостности указанного файла(ов) без разархивации -f, --force Перезапись существующего файла. По умолчанию bzip2 не перезаписывает существующие файлы. Если вы хотите перезаписать существующий файл, надо задать опцию -f -k, --keep Сохранять (не удалять) исходные файлы при архивации или разархивации -s, --small Снижает требования к объему используемой оперативной памяти за счет снижения скорости архивации. Эту опцию рекомендуется применять на компьютерах с малым объемом ОЗУ (8 Мбайт и меньше) -q, --quiet Не выводить малосущественные сообщения -v, --verbose Выводить дополнительную информацию в процессе работе (представляет интерес в диагностических целях) -L, --license, -V, --version Отобразить версию программы и лицензионное соглашение
Аргументы командной строки, которым предшествует двойное тире и пробел, трактуются как имена файлов, даже если они начинаются с тире. Например,
[user]$ bzip2 -- -myfilename
Я думаю, что приведенных данных достаточно для квалифицированного применения архиваторов tar, gzip и bzip2. За дополнительными сведениями, как всегда, обращайтесь к интерактивной подсказке man. По утилите bzip2 имеется "Bzip2-HOWTO”, который даже переведен на русский язык [П6.4].
4.8. Создание и монтирование файловых систем
В предыдущих разделах мы кратко рассмотрели основные команды для работы с уже сформированной файловой системой. Теперь надо остановиться на вопросе о том, как создать файловую систему и модифицировать ее.
Общее дерево файлов и каталогов системы Linux формируется из отдельных "ветвей", соответствующих различным физическим носителям. Часто говорят, что оно формируется из отдельных файловых систем. Говорить так позволяет тот факт, что в UNIX нет понятия "форматирования диска" (и команды форматирования), а используется понятие "создание файловой системы". Когда мы получаем новый носитель, например, жесткий диск, мы должны создать на нем файловую систему. То есть каждому носителю ставится в соответствие отдельная файловая система. Чтобы эту файловую систему использовать для записи в нее файлов, надо ее вначале подключить в общее дерево каталогов ("смонтировать"). Вот и получается, что можно говорить о монтировании файловых систем или о монтировании носителей (с созданными на них файловыми системами).
Можно еще в виде предисловия отметить, что обычно жесткий диск предварительно разбивается на разделы (особенно современные диски, имеющие емкость, исчисляемую десятками гигабайт). Создание разделов облегчает выполнение резервного копирования, решение задач разграничения полномочий, повышает производительность и ограничивает потенциальный ущерб, наносимый вышедшими из-под контроля программами. Поэтому в дальнейшем будем говорить о создании файловой структуры в одном разделе (диск, не имеющий разделов, можно тоже рассматривать как один раздел).
Еще один момент, существенный в контексте этого раздела, связан с тем, что Linux может работать с разными типами файловых систем. "Родной" файловой системой для него в настоящее время является "вторая расширенная файловая система" (second extended filesystem) ext2fs. Ho в Linux можно работать и с 16-разрядной файловой системой FAT, создаваемой в MS-DOS, и с 32-разрядной FAT32, разработанной для MS Windows 95, и с файловой системой ISO9660, используемой для записи информации на CD-ROM, и с другими типами файловых систем (в число которых пока, правда, не входит NFTS). То есть, при рассмотрении вопросов создания и монтирования файловых систем надо постоянно помнить о том, что типы файловых систем на разных носителях могут различаться.