Основным средством архивирования в UNIX (а, следовательно, и в Linux) является комплекс из двух программ — tar и gzip.
Овладеть работой с 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
.