Обратите внимание
Справка не является полной и содержит только обобщенную информацию или некоторый эпизод. Если вы считаете, что в этой статье отсутствует какой-то важный момент, пожалуйста, напишите об этом в комментарии.
Архивирование и разархивирование файлов
Архивирование — это процесс сбора множества файлов и упаковывание их в один большой файл. Архивирование часто применяется как один из этапов создания резервных копий системы.
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