Skip to content

Home Администрирование Использование модуля tarfile для создания архивов TAR
Использование модуля tarfile для создания архивов TAR

Использование модуля tarfile для создания архивов TAR

Создать архив TAR очень просто, даже слишком просто. В примере 6.16 мы создаем очень большой файл. Обратите внимание, что синтаксис создания архива намного более простой, чем даже синтаксис использования самой команды tar.

Пример 6.16. Создание большого текстового файла

Теперь, когда у нас имеется большой файл, наполненный мусором, передадим его архиватору TAR, как показано в примере 6.17.

Пример 6.17. Архивирование содержимого файла

Как видите, был создан обычный архив TAR, причем намного более простым способом, чем с использованием команды tar. Этот пример определенно создает прецедент к использованию оболочки IPython для выполнения повседневной работы по системному администрированию.

Несмотря на удобство создания архивов TAR с помощью Python, тем не менее, практически бесполезно упаковывать в архив один-единственный файл. Используя тот же самый прием обхода каталогов, который мы уже столько раз применяли в этом разделе, можно упаковать в архив TAR весь каталог /tmp, для чего достаточно выполнить обход дерева каталогов и добавить в архив каждый файл, находящийся в каталоге /tmp, как показано в примере 6.18.

Пример 6.18. Архивирование содержимого дерева каталогов

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

Поскольку создание простых архивов TAR - занятие довольно скучное, давайте приправим его сжатием bzip2, что заставит ваш процессор скулить и жаловаться на то, как много выпало работы на его долю. Алгоритм сжатия bzip2 иногда может оказаться отличной штукой. Посмотрим, насколько впечатляющим он действительно может быть.

Создадим текстовый файл размером 60 Мбайт и сожмем его до 10 Кбайт, как показано в примере 6.19!

Пример 6.19. Создание архива TAR, сжатого по алгоритму bzip2

Что самое удивительное, алгоритму bzip2 удалось сжать текстовый файл размером 61 Мбайт в 10 Кбайт, хотя мы и смошенничали, используя одни и те же данные снова и снова. Конечно, этот эффект был получен далеко не бесплатно, потому что в системе на базе двухъядер-ного процессора AMD на это потребовалось несколько минут.

Теперь попробуем двинуться дальше и создать сжатый архив другими доступными способами, начав с gzip. Синтаксис при этом меняется весьма незначительно, как показано в примере 6.20.

Пример 6.20. Создание архива TAR, сжатого по алгоритму gzip

 

Архив gzip тоже отличается невероятно маленьким размером, уместившись в 160 Кбайт, причем на моей машине сжатый архив TAR был создан за несколько секунд. В большинстве ситуаций это неплохой компромисс.

Комментарии (0)

RSS feed Comments

Написать комментарий

smaller | bigger

busy
 

Регистрация




Top