[[ tar - утилита для архивации файлов ]]

tar - утилита для архивации файлов

tar - стандартная утилита unix-систем для работы с архивами

tar-1.2x

Создание архива

Примеры:

Создать bz2 архив, архивировать содержимое каталога ~/for_backup

tar cjpvf arch.tar.bz2 ~/for_backup

Создать gz архив, архивировать содержимое каталога ~/for_backup

tar czpvf arch.tar.gz ~/for_backup

В архиве создается полная структура дерева относительно указанного каталога для архивации, т.е. в архиве файлы будет создано дерево каталогов /home/user/for_backup/.

Что бы корневая папка в архиве была for_backup

cd ~
tar cjpvf arch.tar.bz2 for_backup

Что бы файлы в архиве располагались непосредственно:

cd ~/for_backup
tar cjpvf ~/arch.tar.bz2 ./

Описание ключей:

  • с - создание архива
  • j - тип архива .bz2
  • z - тип архива .gz
  • p - архивировать права доступа
  • v - вывод подробного списка выполнения
  • f - записать архив в файл (следующий параметр указывает имя файла)
  • --exclude - регулярное выражение для исключения файлов или папок из архива

Различные версии утилиты позволяют не указывать - (тире) перед ключами.

Еще примеры:

Создать архив, исключить все файлы и каталоги с именем *.avi

tar cjpvf arch.tar.bz2 ~/for_backup --exclude=*.avi

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

tar cjpvf arch.tar.bz2 ~/for_backup --exclude=video/*

Создать архив, исключить все файлы только из каталога /home/user/for_backup/video

tar cjpvf arch.tar.bz2 ~/for_backup --exclude=/video/*

Создать архив, исползуя утилиту find

find /srv/ -name service.log | tar cjpvf arch.tar.bz2 -T -

Восстановление архива

Распаковать архив в текущую папку:

tar xjvf arch.tar.bz2

При распаковке не обязательно указывать тип архива (j, z и т.п.), утилита tar сама определит типа архива. Можно просто выполнить:

 tar xvf arch.tar.bz2

Распаковать архив в папку /home/dir

tar xvf arch.tar.bz2 -C /home/dir
tar xvf /tmp/arch.tar.bz2  -C /home/user/123/

Извлечь определенный файл из архива

tar xvf arch.tar.bz2 mail.doc
tar xvf arch.tar.bz2 new/qwerty.jpg

Указывается полный путь к файлу относительно его местонахождения в архиве (см. tar --list)

tar xvf /tmp/arch.tar.bz2 -C /home/user/123/ new/qwerty.jpg

При распаковки будет создана структура каталогов (если она есть) в каталоге назначения.
Результат /home/user/123/new/qwerty.jpg

Извлечь файлы по маске:

tar xvf arch.tar.bz2 --wildcards "*/www/site.com/*"

Описание ключей:

  • x - распаковать архив
  • C - восстановит архив относительно указанной директории

Поиск в архиве

Получить список файлов в архиве

 tar --list -f arch.tar.bz2

С выводом атрибутов

tar --list -vf arch.tar.bz2

Сравнение архива

Сравнить содержимое архива с содержимым в текущем каталоге

tar --diff -f arch.tar.bz2

Папку для сравнения можно задать

tar --diff -f arch.tar.bz2 -C /home

Также можно сравнивать конкретные файлы:

tar --diff -f arch.tar.bz2 mail.doc -C /home

Примеры

Эквивалентные опции -d, --diff или --compare

Обсуждение

z, 2010/11/09 04:24

file exceeds Zip's 4GB uncompressed size limit

ошибка при извлечении. как решить ??

Konstantin vzOne Enchant, 2010/11/09 11:36

А вы случайно не на FAT раздел извлекаете?

Анна, 2014/11/08 02:05

у меня CentOS Нужно извлеч только один файл. Делаю: tar –xjf etc.bzip2 “etc/eth*” В итоге извлекается вся папка etc.

пожалуйста, подскажите что не так??

mintoid, 2019/07/20 06:09

–exclude=/video/* неправильно.

Правильно будет

–exclude='/video/*'

Ваш комментарий. Вики-синтаксис разрешён:
8 -2​ = 
 
tools/console/tar.txt · Последнее изменение: 2022/08/31 14:53 — 127.0.0.1
Gentoo Linux Gentoo Linux Driven by DokuWiki