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
Обсуждение
file exceeds Zip's 4GB uncompressed size limit
ошибка при извлечении. как решить ??
А вы случайно не на FAT раздел извлекаете?
у меня CentOS Нужно извлеч только один файл. Делаю: tar –xjf etc.bzip2 “etc/eth*” В итоге извлекается вся папка etc.
пожалуйста, подскажите что не так??
–exclude=/video/*
неправильно.Правильно будет
–exclude='/video/*
'