В Linux. 2 Приобретение и инсталляция Linux. 3 Учебник по Linux 4 Администрирование системы. 5 The X window System. 6 Работа в сети
Вид материала | Учебник |
Содержание4.7 Архивация и компрессирование (сжатие) файлов. 4.7.1 Использование tar. 4.7.2 gzip и compress. 4.7.3 Можно вместе. |
- RH253 Сетевые службы Red Hat Linux и администрирование безопасности, 45.9kb.
- Документация Calculate Linux, 12378.73kb.
- Программы повышения квалификации ункит 1- «Linux для начинающих» Цель, 11.83kb.
- Концепция развития спо в РФ 2 История Linux, 105.81kb.
- Gnu/Linux, 51.18kb.
- Лекция 17. Операционная система Linux, 126.24kb.
- Исследование возможностей ос linux для приложений реального времени с обработкой разнородной, 98.25kb.
- Windows против Linux, 88.72kb.
- Учебный план курса "Базовая поддержка и администрирование Linux" Цель дать знания, 34.75kb.
- Исследование возможностей операционной системы Linux На примере операционной системы, 748.67kb.
4.7 Архивация и компрессирование (сжатие) файлов.
Прежде, чем мы сможем говорить о сохранении (резервировании) программ, мы должны представить инструменты, используемые для архивации файлов и программ в системах UNIX.
4.7.1 Использование tar.
Команда tar наиболее часто используется для архивации файлов. Формат команды tar:
tar opilons files
где options есть список команд и опций для tar, а files список файлов добавляемых в архив или извлекаемых из него.
Например, команда:
# tar cvf backup.tar /etc
упакует все файлы, содержащиеся в /etc, в архив tar под именем backup.tar. Первый аргумент команды tar, ``cvf', это (внутренняя) команда tar. ``c'' указывает tar создать новый архивный файл. Опция ``v'' заставляет tar выводить имя каждого архивируемого файла. Опция ``f'' говорит, что следующий аргумент, backup.tar, имя созданного архивного файла. Остальные аргументы команды tar, имя файла архива и имя добавляемого в архив каталога. Команда:
# tar xvf backup.tar
распакует архивный файл в текущий каталог. Это может быть иногда и небезопасным занятием, когда извлеченные из архива файлы затирают существовавшие файлы.
Поэтому перед извлечением архивированных файлов важно знать, где файлы следует распаковать. Например, вы заархивировали следующие файлы: /etc/hosts, /etc/group и /etc/passwd. Если вы используете команду:
# tar cvf backup,tar /etc/hosts /etc/group /etc/passwd
в начало имени каждого файла добавится каталог с именем /etc. Чтобы извлечь файлы в нужное место, вам потребуется использовать следующие команды:
# cd
# tar wf backup tar
поскольку файлы извлечены с сохраненным в архиве путем.
Если вы заархивировали файлы командой:
# cd /etc
# tar cvf hosts group passwd
имя каталога не сохраняется в архивном файле. Поэтому вы должны выполнить ``cd /etc'' перед извлечением файлов. Вы обратили внимание: то, как вы создали архивный файл сильно влияет на то, в каком месте его следует извлекать. Команда:
# tar tvf backup.tar
может быть использована для просмотра оглавления архивного файла перед его распаковкой. Таким образом вы можете посмотреть, к какому каталогу относятся архивированные файлы и сможете извлечь файлы из архива в нужном месте.
4.7.2 gzip и compress.
В отличие от архивирующих программ для MS-DOS, tar не сжимает автоматически файлы в процессе архивирования. Поэтому, если вы архивируете два одномегабайтных файла, результирующий архивный файл будет размером два мегабайта. Команда gzip может использоваться для сжатия файла (сжимаемый файл не обязан быть tar-файлом). Команда:
# gzip -9 backup tar
сожмет backup.tar и оставит вас наедине с backup.tar.gz, сжатой версией файла. Опция -9 говорит команде gzip, что следует использовать максимально возможную компрессию.
Команда gunzip может быть использована для расжатия сжатого файла. С аналогичным эффектом вы можете использовать команду ``gzip -d''.
gzip сравнительно новый инструмент в кругах, приближенных к UNIX. Долгие годы вместо этого использовалась команда compress. Однако, по нескольким причинам (тут и патентные проблемы относительно алгоритма, и то, что gzip значительно эффективнее) compress оказался не у дел.
Обработанные командой compress файлы заканчивались расширением .Z. Например, backup.tar.Z это сжатая compress версия файла backup.tar, а backup.tar.gz сжатая gzip версия. Чтобы еще надежнее запутать дело, для обозначения gzip файлов некоторое время использовалось расширение .z (маленькая ``z''). В настоящее время официальное расширение .gz. Команда uncompress используется для развертывания файла, который был обработан командой compress. Функционально она равнозначна команде compress -d. Но команда gunzip тоже знает, как обращаться с такими файлами.
4.7.3 Можно вместе.
Чтобы заархивировать и сжать группу файлов, вы можете использовать команды:
# tar cvf backup.tar /etc
# gzip -9 backup.tar
Результат будет backup.tar.gz. Для распаковки этого файла используйте обратную последовательность команд:
# gunzip backup.tar.gz
# tar xvf backup.tar
Разумеется, всегда следует убедиться перед распаковкой файла, что вы в нужном каталоге.
Вы можете опереться на некоторую сообразительность UNIX, позволяющего сделать это одной командной строкой:
# tar cvf - /etc|gzip -9c>backup.tar.gz
Здесь мы посылаем tar-файл, сформированный из /etc, в файл ``-'', который представляет стандартный вывод. Результат по конвейеру поступает на ввод команды gzip, которая сжимает этот файл и результат сохраняет в backup.tar.gz. Опция -c команды gzip говорит, что вывод команды gzip посылает результат на стандартный вывод, который перенаправляется на backup.tar.gz.
Единственная команда для распаковки этого архива:
# gunzip -c backup.tar.gz|tar xvf -
Опять, команда gunzip рассжимает содержимое файла backup.tar.gz и посылает результирующий файл на стандартный вывод. Он по конвейеру передается команде tar, которая читает файл ``-'', что в данном случае олицетворяет стандартный вывод.
К счастью, команда tar также содержит опцию z, автоматически сжимая-расжимая файлы, используя алгоритм компрессии gzip.
Команда:
# tar cvf backup.tar.gz /etc
эквивалентна:
# tar cvf backup.tar /etc
# gzip backup.tar
Как и команда:
# tar xvf backup.tar.Z
может быть использована вместо:
# uncompress backup.tar.Z
# tar xvf backup.tar
За дополнительной информацией обратитесь к man-руководству по tar и gzip.