Архивация и сжатие файлов
Периодическое создание архивных копий файлов и каталогов является весьма полезным действием при работе на ЭВМ, ведь потеряв важную информацию, подготовленную на компьютере, восстановить ее проще всего из архивных копий. Конечно, чаще всего периодическим архивированием занимается системный администратор, но, если вы сами случайно удалили нужную информацию, то гарантировать ее восстановление можно только в случае наличия у вас архивного файла.
Большинство программ архивации при создании архива пытаются уменьшить его результирующий размер, применяя различные алгоритмы сжатия. Команда tar является самым распространенным инструментом для создания файловых архивов в ОС Linux. Формат команды tar опции имя_архива файлы/каталоги.
Здесь "опции" есть список опций, a "файлы/каталоги" - список файлов или каталогов, добавляемых в архив или извлекаемых из него. При работе с каталогами tar рекурсивно, т. е. вместе со всеми поддиректориями, добавляет их в архив. Перечислим наиболее распространенные опции команды tar:
c | создает новый архивный файл; |
v | выводит имя каждого архивируемого файла; |
f | задает имя архивного файла; |
z | осуществляет сжатие или распаковку сжатого архива; |
x | распаковывает архивный файл; |
t | показывает содержимое архива. |
Например, команда
tar cvf backup.tar /etc
упакует все файлы, содержащиеся в /etc, в архив с именем backup.tar. При этом архив не будет сжат.
Если создают архивный файл, используя сжатие, то для отражения этого факта расширение файла заменяют на tgz. Команда создания такого архива имеет вид
tar cvfz имя.tgz файлы
А следующая команда создаст архив backup.tgz, который будет иметь значительно меньший размер по сравнению с архивом backup.tar.
tar cvfz backup.tgz /etc
Пример
Первая команда покажет содержимое архива backup.tgz, а вторая раскроет его, создав в текущем каталоге подкаталог etc:
tar tvfz backup.tgz tar xvfz backup.tgz
Другой распространенной программой для сжатия и архивации является утилита zip. Она создает файл несколько большего размера, но широко используется в операционных системах MS DOS и Windows. Архив, созданный в одной операционной системе, без проблем будет раскрыт в другой. Таким образом, утилиту zip можно использовать для обмена информацией между различными ОС. Формат команды
zip -опции имя_архива файлы/каталоги
По умолчанию, если в списке файлов для архивации присутствуют каталоги, zip добавит в архив только сами каталоги, без их содержимого. Для рекурсивной архивации каталогов необходимо использовать опцию r. Например, команда
zip -r foo my_dir
создаст архив с именем foo.zip, в который поместит директорию my_dir вместе со всем ее содержимым.
Для распаковки архива служит команда
unzip имя_архива
Например, команда
unzip foo.zip
создаст в текущем каталоге подкаталог my_dir и поместит в него содержимое архива.
Для более подробного знакомства с утилитами архивации воспользуйтесь командами: man tar, man zip и man unzip.