TapeArchive или tar, е често срещана програма в Linux / Unix средите, която се използва за архивиране на файлове и директории в един файл.
Обикновено се използва с инструменти като gzip или bzip за прилагане на допълнителна компресия. Резултатът е файл с разширение tar.gz или tar.bz2.
В тази статия ще разгледаме различни примери за tar команди, включително как да създаваме архивни файлове с помощта на (tar, tar.gz и tar.bz2) компресия, как да извличаме архивни файлове, преглед на съдържание на файла, проверка на файл, добавяне на файлове или директории към съществуващия архивен файл и други.
1. Създаване на .tar архив в Linux
В примера по-долу, командата tar ще създаде архив images.tar от два файла image1.jpg и image2.jpg.
$ tar cvf images.tar image1.jpg image2.jpg
Нека да обсъдим всяка една от опциите, които използвахме:
• c – създай нов архив
• v – покажи списък на архивираните файлове
• f – изрично посочваме, че се работи с файл
По подобен начин можем да създадем и архив на директория, заедно с нейните поддиректории и файлове:
$ tar cvf tar_command.tar /home/user/tar_command/
2. Създаване на .tar.gz архив в Linux
За да създадем компресиран gzip файл, добавяме символа z. Например, командата по-долу ще създаде компресиран файл с името images.tar.gz:
$ tar cvfz images.tar.gz /home/user/tar_command/
Като алтернатива, можете да използвате .tgz файл, който е подобен на tar.gz.
$ tar cvfz images.tgz /home/user/tar_command/
3. Създаване на .tar.bz2 архив в Linux
Функцията bz2 също компресира и създава архивен файл подобно на gzip, но нейната компресия е по-силна и съответно крайният резултат е по-малък файл.
За да създадем силно компресиран tar файл, трябва да използваме опцията j. В примера по-долу ще създадем файл images.tar.bz2, за директория /home/user/tar_command/images:
$ tar cvjf images.tar.bz2 /home/user/tar_command/images/
4. Виждане на съдържанието на .tar, .tar.gz, tar.bz2 архив в Linux
След като сте създали архива, лесно можете да видите неговото съдържание, като използвате следната команда:
$ tar tvf images.tar
Същата команда се използва и при .tar.gz и .tar.bz2 архив.
5. Разархивиране на .tar, .tar.gz, tar.bz2 архив в Linux
За да разархивираме или извлечем съдържанието на .tar файл, е необходимо да използваме опцията x.
Например командата по-долу, ще разархивира файла images.tar в настоящата работна директория:
$ tar xvf images.tar
Същата команда може да се използва за .tar.gz и .tar.bz2 архив.
В случай, че желаете да разархивирате файла в друга директория, е необходимо да добавите опцията -C и след нея да опишете пътя до директорията:
$ tar xvf images.tar -C /home/user/tar_command2/
6. Разархивиране на един файл от .tar, .tar.gz, tar.bz2 архив
За да разархивираме файл image1.jpg от .tar, .tar.gz и tar.bz2 архив, трябва да използваме следната команда:
$ tar xvf images.tar image1.jpg
Същата команда се използва и при .tar.gz и .tar.bz2 архив.
Много е важно при разархивиране да се опише пълния път до файла, който се извлича. В противен случай ще получите грешка, че файлът не е открит.
7. Разархивиране на няколко файла от .tar, .tar.gz, tar.bz2 архив
За да разархивираме няколко файла от .tar, .tar.gz и tar.bz2 архив, е необходимо да използваме следната команда:
$ tar xvf images.tar "image2.jpg" "image3.jpg"
Същата команда се използва и при .tar.gz и .tar.bz2 архив.
8. Разархивиране на група файлове с Wildcard
В случай, че искате да разархивирате група от файлове, с общ показател, например всички изображения завършващи на .jpg, може да използвате следната команда:
$ tar xvf images.tar --wildcards ‘*.jpg’
За tar.gz файл, можете да използвате:
$ tar zxvf images.tar.gz --wildcards ‘*.jpg’
За tar.bz2 файл, можете да използвате:
$ tar jxvf images.tar.bz2 --wildcards ‘*.jpg’
9. Добавяне на файл или директория към .tar архив
За да добавим файл или директория към съществуващ .tar архив, е необходимо да използваме опцията r:
$ tar rvf images.tar image3.jpg
Ако искате да добавите директория, командата е същата:
$ tar rvf images.tar images.tar new_image/
Имайте предвид, че към tar.gz и tar.bz2 файл не може да се добавят файлове или директории.
10. Изключване на файл или директория от .tar архив
В настоящия пример ще видите как да изключите файла image5.jpg, при създаването на .tar.gz архив.
$ tar --exclude='image5.jpg' -zcvf images.tar.gz /home/user/tar_command/images/
В случай, че искаме да изключим директория new_image/, трябва да използваме следната команда:
$ tar --exclude='/home/user/tar_command/images/new_image' -zcvf images.tar.gz /home/user/tar_command/images/
11. Изтриване на файл или директория от .tar архив
За да изтрием файла image1.jpg от архива images.tar, ще използваме следната команда:
$ tar --delete --file images.tar /home/user/tar_command/images/image1.jpg
Ако желаете да премахнете и директория new_image/, трябва да използвате следната команда:
$ tar --delete --file images.tar '/home/user/tar_command/images/new_image'
Това са основните примери, които смятаме че ще Ви бъдат от полза при използването на командата tar. За повече информация, моля използвайте документацията на man tar.