Создание и распаковка архивов в Linux

В случае с Linux VPS на базе OpenVZ и Xen для работы с архивами достаточно базовых компонентов системы, а именно Tar, Gzip и Bzip2, которые при создании сжатого архива работают как единое целое, т.к. сам по себе архиватор Tar не предусматривает возможность сжатия данных. Для этой цели как раз и используется Gzip или Bzip2. Архивы, созданные с применением Gzip, обычно имеют расширение .tar.gz, а при использовании Bzip2 - .tar.bz2.

Создание tar-архива без сжатия

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

tar -cf filename.tar file1 file2 fileN

Параметр -cf отвечает за создание архива filename.tar, в который войдут указанные файлы. Вместо файлов могут быть указаны и директории.

Создание архива с использованием сжатия

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

Пример сжатия Gzip:

tar -cvzf filename.tar.gz dir_name

В данном случае мы попытались запаковать папку dir_name в архив filename.tar.gz. Из указанных параметров -z указывает на использование метода Gzip, а -v выводит результаты процесса создания архива с указанием упакованных файлов или папок.

Пример сжатия Bzip2:

tar -cvjf filename.tar.bz2 dir_name

Данная команда аналогична предыдущей и имеет отличие в параметре –j, т.к. именно он отвечает за использование метода сжатия Bzip2.

Распаковка архива

Для того, чтобы распаковать архив, используется команда:

tar -xvf filename.tar.bz2

В данном случае архив filename.tar.bz2 будет распакован в ту папку, в которой вы находились в момент запуска команды. Для того, чтобы распаковать архив в какую-либо другую директорию, можно использовать команду:

tar -xvf filename.tar.bz2 -C /path/to/folder

В этом случае архив распакуется в указанной директории.

Просмотр содержимого архива без распаковки.

Для этих целей используется следующая команда:

tar -tf filename.tar.gz

В результате выполнения команды выведется список файлов и папок, хранящихся в архиве. Если в перечень параметров добавить -v, то получится расширенный вывод информации о содержимом с указанием размера файлов, прав доступа, именами владельцев и их групп, и т.п.

Просмотреть полный список возможностей архиватора tar можно при помощи команд:

tar --help      #вызов справки по командам и параметрам
man tar	        #вызов расширенной документации

Создание и распаковка ZIP-архивов

Создание zip-архива выполняется командой:

zip archive.zip filename

Вместо archive.zip указываем имя создаваемого архива. Вместо filename указываем имя файла, который нужно архивировать. Для архивации целой папки необходимо использовать параметр –r, который инициирует рекурсивное архивирование. Без этого параметра будет заархивирована только папка без вложенных в неё файлов. Пример команды:

zip –r archive.zip dirname

Распаковка архива производится командой unzip:

unzip archivename.zip

Если необходимо распаковать в конкретную папку, то для этого используется параметр –d. Например:

unzip –d dirname archivename.zip

Вместо dirname указывается папка, в которую нужно извлечь данные из архива.

Просмотреть полный список возможностей архиватора zip и unzip можно при помощи команд:

zip --help или unzip --help	#вызов справки по командам и параметрам
man zip или man unzip		#вызов расширенной документации

Распаковка RAR-архивов

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

unrar filename.rar

Посмотреть список файлов в архиве без его распаковки можно командой:

unrar –t filename.rar

Примечание: Стоит отметить, что Unrar может отсутствовать по умолчанию в некоторых Linux-дистрибутивах. Установить данное ПО можно следующими командами:

CentOS/Fedora:

yum install unrar

Debian/Ubuntu:

apt-get install unrar-free

Просмотреть полный список возможностей архиватора unrar можно при помощи команд:

rar --help 	#вызов справки по командам и параметрам
man unrar	#вызов расширенной документации

Пример создания резервной копии данных на VPS

Допустим, на VPS необходимо сделать резервную копию файлов сайта, которые располагаются в директории /var/www/html/mysite. Чтобы создать сжатый архив данных, расположенных в указанной директории, необходимо выполнить следующую команду:

tar -cvzf mysite.tar.gz /var/www/html/mysite

В результате содержимое директории /var/www/html/mysite будет запаковано в архив mysite.tar.gz.

Если вы хотите перенести подобный архив с одного VPS на другой, но не знаете, как это сделать, то об этом вы можете узнать в статье Способы переноса файлов между серверами.