Работа с TAR
- В двух словах о самом формате tar
Например чтобы запаковать текущую папку в tar-архив напишемhttp://ru.wikipedia.org/wiki/Tar писал(а):...в настоящее время tar используется для хранения нескольких файлов внутри одного файла, для распространения программного обеспечения, а также по прямому назначению — для создания архива файловой системы.где foo.tar имя которое будет присвоено полученному архиву, а "./" указание папкиКод: Выделить всё
tar -cvvf foo.tar ./
А для распаковки этого архива будем использоватьКод: Выделить всё
tar -xvvf foo.tar
- Tar-архив может быть дополнительно сжат одним из поддерживаемых архиваторов: gzip, bzip2 и др.
Для указания архиватора указывается один из дополнительных параметров, например:
запаковать gzip'ом foo.tar.gzзапаковать bzip2'ом foo.tar.bz2Код: Выделить всё
tar -cvvzf foo.tar.gz ./
распаковать запакованный gzip'ом foo.tar.gzКод: Выделить всё
tar -cvvjf foo.tar.bz2 ./
распаковать запакованный gzip'ом foo.tar.bz2Код: Выделить всё
tar -xvvzf foo.tar.gz
Код: Выделить всё
tar -xvvjf foo.tar.bz2
- Основные опции команды tar-A, --catenate, --concatenate
склеить файлы tar в один архив
-c, --create
создать новый архив
-d, --diff, --compare
найти различия между архивом и файловой системой
--delete
удалить из архива (не применяется к магнитным лентам!)
-r, --append
добавить файлы в конец архива
-t, --list
показать содержимое архива
-u, --update
добавить только новые версии файлов файлов
-x, --extract, --get
извлечь файлы из архива
-j, --bzip2
используется для создания/распаковки .bz2 файлов
-z, --gzip, --ungzip
используется для создания/распаковки .gz файлов
-M, --multi-volume
создать/показать/распаковать многотомный архив
Другие не менее интересные опции этой очень важной команды можно найти в руководстве пользователя - man tar.
- Запаковать текущую папку с подпапками в zip-архив folder.zip
Распаковать архив folder.zip в папку folder
Код: Выделить всё
zip -r folder.zip ./
Код: Выделить всё
unzip ./folder.zip -d ./folder
- Допустим нам надо запаковать содержимое папки /var/www, исключив папку /var/www/test и все zip архивы, в многотомный архив с размером тома 1024 Мб. Делается это командой
(«-» после -czvf говорит tar'у выводить в stdout, чтобы потом split мог его разбить на части(а «-» в split говорит ему брать из stdin)) В результате будут созданы файлы backup.tar.gzaa, backup.tar.gzab, backup.tar.gzac ..., размер каждого 1024 Мб. Именно последние две буквы в названии архива .tar.gzaa, .tar.gzab и т.д., указывают на то, что он разбит на части.
Код: Выделить всё
tar -czvf - --exclude=www/test --exclude='*.zip' /var/www/ | split -b 1024m - ./backup.tar.gz
Склеить все части можно командойНапримерКод: Выделить всё
cat часть1 часть2 часть3 > архив.tar.gz
Если все части архива находятся в одной папке, то команда для склеивания выглядит так:Код: Выделить всё
cat backup.tar.gzaa backup.tar.gzab backup.tar.gzac > backup.tar.gz
Код: Выделить всё
cat backup.tar.* > backup.tar.gz
- Создание многотомного архива arch.7z папки soft/
в результате будут созданы файлы arch.7z.001 arch.7z.002 arch.7z.003 ..., размер каждого 100 Мб (опция -v100m).
Код: Выделить всё
7z a -v100m arch.7z soft/
Чтобы распаковать многотомный архив arch.7z.001, достаточно поместить все части архива в текущую папку и дать командуКод: Выделить всё
7z x arch.7z.001
Код: Выделить всё
7z e -pПароль archive.7z
между вашим паролем и ключем -p не должно быть пробелов, в кавычки надо брать если в пароле используется например дефис или другой системный символКод: Выделить всё
unrar e -p"Пароль" archive.rar
создание и распаковка архива с паролем через 7zipпароль будет запрошен системойКод: Выделить всё
7za a -mhe=on -ms=on -p Documents.7z Documents/
пароль также спросит система после ввода командыКод: Выделить всё
7za x Documents.7z
При написании использовалась официальная информация.