Как да използваме Командата Tar в Linux?

TapeArchive или tar, е често срещана програма в Linux / Unix средите, която се използва за архивиране на файлове и директории в един файл.

Обикновено се използва с инструменти като gzip или bzip за прилагане на допълнителна компресия. Резултатът е файл с разширение tar.gz или tar.bz2.

В тази статия ще разгледаме различни примери за tar команди, включително как да създаваме архивни файлове с помощта на (tar, tar.gz и tar.bz2) компресия, как да извличаме архивни файлове, преглед на съдържание на файла, проверка на файл, добавяне на файлове или директории към съществуващия архивен файл и други.

Command-tar-linux

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 архив.

Delta Marketplace - как да създадете VPS с предварително инсталиран софтуер с няколко клика?

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.

Детелин Илиев

Детелин Илиев

Детелин има над 5 годишен опит с Linux и е добре запознат с интерфейса му и работата под команден ред. Разполага със Cpanel сертификат, познава отлично Cpanel средата и с лекота управлява уеб хостинг акаунти. Има богат опит с WordPress и в свободното си време използва платформата за създаване на съдържание.