tar — наиболее популярный архиватор в Unix и Linux-системах. Во всех популярных дистрибутивах систем он установлен по умолчанию. Однако tar не сжимает архив, он просто собирает все в один файл. Изначально tar задумывался для записи данных на ленту, во времена его разработки не было дискет и компакт дисков !). Но tar в связке с gz и bz2 дает сжатые данные, причем с весьма неплохой компрессией.
Вообще-то говоря для Linux разработаны практически все архиваторы, работавшие под DOS и Windows ))) такие как LZH, LHA, ARJ, ZIP, RAR ну все остальное.
Использование tar
Опции tar:
- c — создание нового архива (сокращение от create)
- A —concatenate – позволяет добавить уже существующий архив к другому
- d – -diff или -delete, первая проверяет различия между архивами, вторая – удаляет данные
- v — выдача дополнительных сообщений в процессе работы программы
- f — создание файла на диске.
- z — использовать для сжатия GZip
- j — использовать для сжатия BZip2
- x — распаковать архив
- r — append – добавляет новые файлы в конец заархивированного документа;
- t —list – разрешает посмотреть содержимое архива
- u —update – обновление файлов в созданном архиве с тем же наименованием;
tar также хорошо взаимодействует с утилитами сжатия. Для их использования предназначены отдельные опции:
- —a -auto-compress – выбирает программу для сжатия данных;
- —I -use-compress-program=PROG – позволяет фильтровать архив
- —j -bzip2 – сжимает архив с помощью программы bzip2;
- —J -xz – сжимает архив с помощью программы XZ;
- —Izip – сжимает архив с помощью программы Lzip;
- —Izma – сжимает архив с помощью программы Izma;
- —z -gzip, -gunzip, -ungzip – сжимает архив с помощью программы GZIP;
- —Z -compress, -uncompress – использование компрессии.
Создание архива tar с именем backup.tar, включающим файлы file01.sql, file02 и file03:
|
1 |
tar -cvf backup.tar file01.sql file02 file03 |
Просмотр содержимого архива backup.tar:
|
1 |
tar -tf backup.tar |
Распаковка архива backup.tar:
|
1 |
tar -xvf backup.tar |
Для того, чтобы распаковать архив в указанный нами каталог, нужно добавить опцию -C:
|
1 |
tar -xvf backup.tar -С /root/backup/ |
Работа со сжатыми архивами.
tar только создаёт архив, но не сжимает. Для сжатия используются утилиты bzip2 и gzip. Файлы, сжатые с их помощью, имеют расширения .tar.bz2 и .tar.gz2.
Для создания архива с использованием сжатия bzip2 выполним команду:
|
1 |
tar -cjvf backup.tar.bz2 file01.sql file02 file03 |
Для создания gzip архива нужно изменить один параметр:
|
1 |
tar -czvf backup.tar.gz file01.sql file02 file03 |
Распаковка tar.bz2 архива:
|
1 |
tar -xjvf backup.tar.bz2 -C /root/backup/ |
Распаковать tar.gz архив можно командой:
|
1 |
tar -xzvf backup.tar.gz |
Частные случаи:
Часто бывает, что необходимо сохранить архив на удалённом сервере, т.к места на текущем попросту нет. В этом нам также поможет архиватор tar:
|
1 |
tar zcvf - /var/www/html | ssh root@IP "cat > /var/www/backup.tar.gz" |
где /var/www/html— архивируемая директория,
IP — удалённый сервер, на котором будет создан архив.
/var/www/backup.tar.gz — путь, указывающий расположение нашего архив.
Распаковка конкретного файла из архива:Если вы хотите извлечь несколько файлов, используйте следующий формат команды:
|
1 |
tar -xvf backup.tar file01.sql file02 |
Соответственно для .tar.gz команда будет выглядеть так:
|
1 |
tar -zxvf backup.tar.gz file01.sql file02 |
Для .tar.bz2:
|
1 |
tar -jxvf backup.tar.bz2 file01.sql file02 |
|
1 |
tar -cvf archive.tar folder --exclude={'*/folder1/*','*/folder2/*'} |
А вот так, в архив не попадут и сами папки:
|
1 |
tar -cvf archive.tar folder --exclude={'*/folder1','*/folder2'} |
Можно —exclude указывать несколько раз:
|
1 |
tar -cvf archive.tar folder --exclude='folder/folder1' --exclude='folder/folder2' |
(очень интересная опция) Упаковать папку в архив и сразу отправить на удалённый сервер по ssh:
|
1 |
tar -cvf - folder | ssh root@192.168.1.1 "cat > /backup/archive.tar" |
Упаковать файл или папку в архив tar.gz
Здесь всё те же команды, что и просто с tar, которые приведены выше, только добавляем в начале опцию z и имя создаваемого архива указываем с расширением .tar.gz:
|
1 |
tar -zcvf archive.tar.gz folder |
Упаковать файл или папку в архив tar.bz2
Опять, всё тоже самое, что и в случаях выше, только уже указываем опцию j, и имя создаваемого архива указываем с расширением tar.bz2:
|
1 |
tar -jcvf archive.tar.bz2 folder |
Как посмотреть содержимое архива
Всё просто, используем опцию t. Работает и с простыми архивами tar, и со сжатыми в tar.gz или tar.bz2:
|
1 |
tar -tf archive.tar |
Как распаковать архивы tar, tar.gz, tar.bz2
Распаковать архив tar
|
1 |
tar -xvf archive.tar |
Распаковать архив tar в определённую папку:
|
1 |
tar -xvf archive.tar -C /home/ |
Распаковать архив tar.gz в определенную папку
|
1 |
tar -xzvf archive.tar.gz -C /home/ |