9 примеров как использовать tar архиватор в Linux и Freebsd
На Unix (это Linux, Freebsd и др.) системах команда tar является главной архивирующей утилитой. Понимание множества опций этой команды позволит вам мастерски манипулировать архивами.
В этой статье я хотел бы рассмотреть разные примеры, включающие в себя создание tar архива (с использованием gzip и bzip сжатия), распаковка отдельного файла или директории, просмотр содержимого tar архива, валидация целостности tar архива, выяснение разницы между tar архивом и файловой системой, вычисление размера архива перед его созданием и другие.
Создание архива с использованием команды tar
Создание и распаковка tar архива производится с использованием опции cvf. Вот так выглядит базовая команда для создания архива:
$ tar cvf archive_name.tar dirname/
Разберем каждый ключ из опции по отдельности:
- c – создание нового архива
- v – вывод списка файлов к обработке
- f – имя файла архива
Чтобы создать архив сжатый gzip нужно использовать опцию cvzf. Предыдущая опция cvf абсолютно не использует какого-либо сжатия. Чтобы использовать gzip сжатие добавьте опцию z как показано ниже:
balloonsandcupcakes.com
profielgigant.nl
armychoir.ru
fedvmcs.org
henryturnbuckle.tripod.com
sterlingskyey.weebly.com
highlandsunbridled.com
nvgazeta.ru
yelkhatib.wordpress.com
jurupavalleyprorodeo.com
cybersamuraikai.wordpress.com
otaa.fr
filmakas.com
aplusnow.com
manishnashikkar.blogspot.com
renovatedigital.com
sumerset.com
rowsurfer.com
nilovelez.com
starautomall.co
koshkina.net
fotografia.it
maneonmainsalon.com
mnamss.org
24hournapkin.com
kerstinbegley.com
lamadrivingschool.com
sendfaxinternet.com
speedgocomputing.com
vitamexdeoccidente.com
nolimits-soccer.com
ebk.net.ua
thefridaynightprojectsite.wordpress.com
yogaindigo.ru
jobswype.at
mikesplumbing.com
shinbun-insatsu.jp
clarkconnect.com
nishipro.com
techtej.blogspot.com
oicokc.org
korea.edu
koreansexporn.com
driver.pk
entorno.pt
optivertech.us
hetledhuis.nl
doorhan-spb.ru
jousun.com
hauntedhearts.wordpress.com
escambray.cu
lpan.io
attiliocodognato.it
scottishequestrianhotel.com
allevi8marketing.com
tuttoleo.it
espressoshotofmedicine.com
bathbeachdrivingschool.com
khoanguyen.me
allreferat.com.ua
zonanutricion.mx
fanweekend.dk
kaula.ru
huynhlaielectric.com
ulvjava.blogspot.com
poligrafia.com.mx
windowsexploit.com
scorchking.blogspot.com
progmatiq.com
eventstream.ca
keynotespeakers.eu
austincounselingassociates.com
daveasprey.com
mycrosswind.com
davidsherlock.co.uk
smsc.ua
withsarahj.com
howtofaxto.com
ptservidor.pt
vue-en-ville.com
darkhipo.info
margauxagency.com
cvysl.org
hanyang.ac.kr
satoshi.network
xxx-porn.biz
tajautomall.com
netsindo.com
nationaltimeandsignal.com
unzailab.com
sunsetdrivingschool.com
selenic.com
twinanchorsmfg.com
swiftfinguru.com
paksuzuki.com.pk
hurricanecreekcc.com
unvs.co.uk
amerplastics.com
nutriequipo.com
treewoods.net
$ tar cvzf archive_name.tar.gz dirname/
- z – упаковывает архив используя gzip сжатие
Лично предпочитаю всегда оставлять опцию cvf без изменений и только лишь в конце дописывать необходимые ключи если потребуется сжатие. Например, cvfz или cvfj. Так легче запоминается.
Теперь давайте создадим архив используя bzip2 сжатие:
$ tar cvfj archive_name.tar.bz2 dirname/
- j – упаковывает архив используя bzip2 сжатие
gzip или bzip2? Сжатие и распаковка архива при помощи bzip2 занимает несколько больше времени и сам архив получается меньшего размера.
Создание tar архива с текущей датой в имени архива
Если вы создаете бекап, то очень важно знать, когда именно он был создан. Проще всего узнать об этом можно из его имени.
tar -cvf archive-$(date +%Y%m%d).tar.gz dirname/
Распаковка архива с использованием команды tar
Для распаковки архива используется команда xvf:
$ tar xvf archive_name.tar
- x – извлечение файлов из архива
Чтобы распаковать tar.gz используйте опцию xvfz:
$ tar xvfz archive_name.tar.gz
Чтобы распаковать архив сжатый bzip2 используйте опцию xvfj:
$ tar xvfj archive_name.tar.bz2
Просмотр файлов в архиве tar
Чтобы посмотреть содержимое tar архива используйте опцию tvf.
$ tar tvf archive_name.tar
Чтобы посмотреть содержимое архива сжатого при помощи gzip воспользуйтесь опцией tvfz
$ tar tvfz archive_name.tar.gz
Чтобы посмотреть содержимое архива сжатого при помощи bzip2 воспользуйтесь опцией tvfj
$ tar tvfj archive_name.tar.bz2
Извлечение отдельного файла из tar, tar.gz, tar.bz2 архивов
Бывают ситуации, когда из большого архива требуется извлечь только 1 файл:
$ tar xvf archive_file.tar path/to/file
Для сжатых gzip и bzip2 архивов соответственно используйте:
$ tar xvfz archive_file.tar.gz path/to/file $ tar xvfj archive_file.tar.bz2 path/to/file
Извлечение отдельной папки из tar, tar.gz, tar.bz2 архивов
Извлечение отдельной папки, включая все подпапки и файлы, производится также, как и извлечение отдельного файла:
$ tar xvf archive_file.tar /path/to/dir/
Чтобы извлечь несколько папок из архива указывайте их имена по порядку:
$ tar xvf archive_file.tar /path/to/dir1/ /path/to/dir2/
Для сжатых архивов то же самое, только с использованием соответственно дополнительных ключей:
$ tar xvfz archive_file.tar.gz /path/to/dir/ $ tar xvfj archive_file.tar.bz2 /path/to/dir/
Извлечение группы файлов из tar, tar.gz, tar.bz2 архивов с использованием регулярных выражений
Чтобы извлечь группу файлов по определенных признакам в имени вы можете использовать регулярные выражения. К примеру, давайте извлечем из архива все файлы с расширением html.
$ tar xvf archive_file.tar --wildcards '*.pl'
Добавление файла или папки в существующий архив tar
Для добавления нового файла или папки в уже существующий архив используйте опцию -r:
$ tar rvf archive_name.tar newfile
Добавление папки проводится по аналогии:
$ tar rvf archive_name.tar newdir/
Помните, что операция добавления файлов и папок работает только для не сжатых tar архивов.
Определение tar размера архива перед его созданием
Следующая команда позволяет определить размер tar.gz или tar.bz2 архива перед его созданием (в KB)
tar -czf - /directory/to/archive/ | wc –c $ tar -cjf - /directory/to/archive/ | wc -c