Архивирование

Опубликовано mensh - вт, 11/22/2005 - 15:30

Основным средством архивирования в UNIX (а, следовательно, и в Linux) является комплекс из двух программ — tar и gzip.

Архивирование в Linux

Овладеть работой с tar и gzip — дело чести любого пользователя Linux, так как в таком формате распространяется большая часть программного обеспечения для Unix.

Содержание

Программа tar

Программа tar создает архивы, соединяя отдельные файлы в единый архивный файл: Для создания архивного файла на диске следует использовать команду с опцией f:

$ tar -cvf mokshadharma.tar mokshadharma/*
mokshadharma/ch/
mokshadharma/ch/ch174.xml
mokshadharma/ch/ch175.xml
mokshadharma/ch/ch176.xml
mokshadharma/ch01.html
mokshadharma/ch02.html
mokshadharma/ch03.html
mokshadharma/cron.sh
mokshadharma/docbook.xsl
mokshadharma/index.html
mokshadharma/index.xml
mokshadharma/pr01.html
mokshadharma/pt01.html
mokshadharma/style/
mokshadharma/style/style.css

В приведенном примере были использованы следующие опции:

  • c — создание нового архива (сокращение от create);
  • v — выдача дополнительных сообщений в процессе работы программы (сокращение от verbose);
  • f — создание файла на диске.

Символом-заместителем * были отправлены в архив все файлы и подкаталоги текущего каталога.

Для распаковки (извлечения) файлов из архива используется команда:

$ tar -xf mokshadharma.tar

В приведенном примере опция v отсутствует и во время распаковки никаких сообщений на экран не выводится.

Подсказку по использованию команды tar можно получить, дав команду:

$ tar --help

Программа gzip

Для сжатия архивного файла при архивации часто используется программа gzip:

$ tar -czf mokshadharma.tar.gz mokshadharma/*

Для распаковки архивного файла используется команда:

$ tar -xzf mokshadharma.tar.gz

Программа bz2

В последнее время вместо программы gzip все чаще используется архиватор bzip2, обеспечивающий более высокую степень сжатия и работающий несколько быстрее.

Работает bzip2 примерно так же, как команда gzip, замещая каждый файл, имя которого задано в командной строке, сжатой версией, добавляя при этом к имени файла суффикс .bz2:

 $ bzip2 linuxcookbook_20080518.sql
 $ ls -F
 linuxcookbook_20080518.sql.bz2
 

Для распаковки архивного файла используется команда:

$ bunzip2 linuxcookbook_20080518.sql.bz2

Исходные файлы после сжатия удаляются, остается только архивный файл (файлы перемещаются в архив), а при разархивации удаляется архив.

Программа zip

В мире Windows очень распространены утилиты для работы  zip-архивами, поэтому в Linux тоже есть программы для работы с этим форматом. Программа для сжатия называется zip, а для распаковки — unzip.

Программа zip позволяет рекурсивно сжимать текущий каталог, добавляя в архив все находящиеся в нём подкаталоги:

$ zip -r mokshadharma.zip mokshadharma
 adding: mokshadharma/ (stored 0%)
 adding: mokshadharma/ch02.html (deflated 72%)
 adding: mokshadharma/pr01.html (deflated 65%)
 adding: mokshadharma/ch03.html (deflated 68%)
 adding: mokshadharma/index.html (deflated 60%)
 adding: mokshadharma/pt01.html (deflated 63%)
 adding: mokshadharma/ch/ (stored 0%)
 adding: mokshadharma/ch/ch174.xml (deflated 74%)
 adding: mokshadharma/ch/ch176.xml (deflated 68%)
 adding: mokshadharma/ch/ch175.xml (deflated 73%)
 adding: mokshadharma/docbook.xsl (deflated 63%)
 adding: mokshadharma/cron.sh (deflated 44%)
 adding: mokshadharma/index.xml (deflated 65%)
 adding: mokshadharma/style/ (stored 0%)
 adding: mokshadharma/style/style.css (deflated 78%)
 adding: mokshadharma/ch01.html (deflated 73%)

Распаковка файлов выполняется так же просто:

$ unzip mokshadharma.zip
Archive: mokshadharma.zip
 creating: mokshadharma/
 inflating: mokshadharma/ch02.html
 inflating: mokshadharma/pr01.html
 inflating: mokshadharma/ch03.html
 inflating: mokshadharma/index.html
 inflating: mokshadharma/pt01.html
 creating: mokshadharma/ch/
 inflating: mokshadharma/ch/ch174.xml
 inflating: mokshadharma/ch/ch176.xml
 inflating: mokshadharma/ch/ch175.xml
 inflating: mokshadharma/docbook.xsl
 inflating: mokshadharma/cron.sh
 inflating: mokshadharma/index.xml
 creating: mokshadharma/style/
 inflating: mokshadharma/style/style.css
 inflating: mokshadharma/ch01.html

Утилиты zip имеют несколько расширенных опций для создания самораспаковывающихся архивов, исключения файлов, управления размером сжатого файла, вывода информации о выполняемых действиях и многого другого. О том, как использовать эти опции, можно узнать из страницы руководства к zip и unzip.

Поделиться с друзьями