Linux. Архивирование и сжатие файлов

Опубликовано:
Автор:
Обратите внимание

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

Архивирование и разархивирование файлов

Архивирование — это процесс сбора множества файлов и упаковывание их в один большой файл. Архивирование часто применяется как один из этапов создания резервных копий системы.

tar — классический инструмент для архивирования файлов.

Полная справка:

man tar

В общем виде команда tar имеет следующий синтаксис:

tar режим[параметры] имя_архива список_директорий
Режимы команды tar (режим указывается перед параметрами)

c

Создать архив из списка файлов и/или каталогов

x

Извлечь файлы из архива

r

Добавить указанный файл и/или каталог в конец архива

t

Вывести список содержимого архива

Параметры команды tar

z

Сжать архив при помощи gzip

v

Показать больше подробностей

f

Указать имя tar-архива. Обязательный параметр. Параметр требует ввода значения

-C

Указать директорию, куда следует разархивировать. Параметр требует ввода значения

--exclude

Указать директорию, которую следует исключить из архива. Параметр требует ввода значения

Примеры использования

Создать сжатый архив archive.tar.gz директории folder

tar czvf archive.tar.gz folder


Создать сжатый архив двух директорий folder и dir

tar czvf archive.tar.gz folder dir


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

tar tzvf archive.tar.gz | less


Разархивировать сжатый архив в текущую директорию (если архив не сжатый, исключите параметр z)

tar xzvf archive.tar.gz


Разархивировать сжатый архив в директорию output

tar xzvf archive.tar.gz -C /path/to/output


Создать сжатый архив с исключением содержимого в директории devel

tar czvf archive.tar.gz --exclude='folder/devel/*' folder
tar --exclude='devel' -zcvf archive.tar.gz .


Создать сжатый архив с исключением содержимого нескольких директорий

tar czvf archive.tar.gz \
--exclude='folder/devel/*' \
--exclude='folder/draft/*' \
folder
tar --exclude='styles' --exclude='drafts' -zcvf files.tar.gz .


Разархивировать все архивы в текущей директории одной командой

for i in *.tar.gz; do tar xzvf $i; done

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

Linux. Архивирование и сжатие файлов