Как да създадете tar.gz архив с помощта на командата tar на Linux

Сподели

Тази статия ви показва най-добрите практики за създаване на архиви tar.gz от командния ред в Linux с помощта на командата tar.

Използвайки tar команда за създаване tar.gz архивите в Linux е задължително умение за всеки Linux администратор. Поради тази причина в тази статия ще ви покажем как да създавате tar.gz архиви в Linux, използвайки примери от реалния свят, следвайки най-добрите практики.

Освен това, ако искате да научите как да извличате tar.gz файлове в Linux, вижте нашето отлично ръководство „Как да извлечете tar.gz файл в Linux с помощта на командния ред“.

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

Каква е разликата между TAR, TAR.GZ и TAR.BZ2?

Tar означава „Tape Archive“, защото е бил използван за поставяне на данни върху ленти за съхранение, когато tar е изобретен. Това е общ файлов формат в системите Linux/UNIX, който пакетира файлове заедно за целите на архивиране или разпространение.

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

Следователно, за да получите компресия на окончателния TAR архив, допълнителен инструмент като напр GZIP или BZIP2 трябва да участват по време на създаването му.

В резултат на това, когато се приложи GZIP, полученият файл има tar.gz разширение. Ако се използва BZIP2, файлът получава tar.bz2 разширение.

И така, след като направихме тези разяснения, нека да преминем към същината на темата, как да създадем a tar.gz архив в Linux с помощта на tar команда.

Създаване на TAR архивен файл

Общият синтаксис за tar командата е следната:

tar [OPTIONS] [ARCHIVE_NAME] [FILE_NAMES]

В Linux, tar има множество опции, но най-важните и често използвани при създаване на архив са изброени по-долу:

  • -c (--create) Създайте нов tar архив.
  • -v (--verbose) Показване на файловете, обработени от tar команда.
  • -f (--file=) Име на получения архивен файл.
  • -z (--gzip) Филтрирайте архива през GZIP.
  • -j (--bzip2) Филтрирайте архива през BZIP2.
  • --exclude Изключване на файлове, съответстващи на модела.

Например, за да създадете tar архив с име myfiles.tarвключително файловете file1.txt, file2.jpgи file3.pdfизползвайте командата по-долу:

tar -cvf myfiles.tar file1.txt file2.jpg file3.pdf
Създаване на tar архивен файл

Основното нещо, което трябва да се отбележи тук е, че -f аргументът трябва да е последен в списъка с аргументи, защото tar команда очаква името на файла да идва след нея.

Както можете да видите от примера, аргументите не трябва да бъдат разделени, което улеснява въвеждането на командата. Разбира се, командата ще получи напълно подобен резултат, ако се изпълни и по следния начин:

tar -c -v -f myfiles.tar file1.txt file2.jpg file3.pdf

Или още по-описателно:

tar --create --verbose --file=myfiles.tar file1.txt file2.jpg file3.pdf

Сега нека да разгледаме как работят нещата при архивиране на цяла директория. Да предположим, че имате директория, наречена files и искате да го запишете във файл, наречен myfiles.tar. Ще въведете следната команда:

tar cvf myfiles.tar files/
Създаване на tar архивен файл

Както можете да видите, единствената разлика между тази команда и последната е, че не предавате списък с файлове на tar команда, а по-скоро пътя до директорията, която искате да архивирате.

По същия начин, ако искате да архивирате няколко папки в един файл, избройте ги една след друга с техния пълен или относителен път.

tar cvf myfiles.tar files1/ files2/
Архивирайте няколко папки

Изключване на файлове и директории

Понякога трябва да създадем архив, като същевременно изключим определени файлове или папки. В такава ситуация, --exclude опцията влиза в действие.

Например, приемете, че имаме име на директорията files съдържащ четири поддиректории: files1, files2, files3и files4.

Искаме да архивираме всичко files директория, но крайният архив не трябва да включва files2 и files3 директории. Командата, която трябва да изпълним, за да постигнем това, е следната:

tar cvf myfiles.tar --exclude=files2 --exclude=files3 files/
Изключете файлове и директории

Обърнете внимание на употребата на files2 и files3. Тъй като тези низове всъщност са регулярни изрази, ние не включваме никакви пътища.

По същия начин, ако искаме да изключим само файлове с .txt разширение от архива, можем да стартираме:

tar cvf myfiles.tar --exclude=*.txt files/

Създаване на архивен файл TAR.GZ

GZIP е най-широко използваният алгоритъм за компресиране на tar файлове. Когато използвате GZIP за компресиране на tar архиви, името на архива трябва да завършва с tar.gz.

За да го използвате, добавете -z опция за tar команда, която инструктира на tar за прилагане на GZIP компресия. Например, нека архивираме file1.txt, file2.jpgи file3.pdf към архив с име myfiles.tar.gz.

tar -cvzf myfiles.tar.gz file1.txt file2.jpg file3.pdf
Създаване на архивен файл tar.gz

Създаване на архивен файл TAR.BZ2

BZIP2 е друг популярен алгоритъм за компресиране на tar файлове. Така че, когато използвате BZIP2, името на архива трябва да завършва на tar.bz2.

За да го използвате, добавете -j опция за tar команда, която инструктира на tar за прилагане на BZIP2 компресия. Например, нека архивираме файловете file1.txt, file2.jpgи file3.pdf към архив с име myfiles.tar.bz2.

tar -cvjf myfiles.tar.bz2 file1.txt file2.jpg file3.pdf
Създаване на архивен файл tar.bz2

TAR, TAR.GZ или TAR.BZ – Кое да използвате?

Сега вероятно се чудите кой от трите формата (TAR, TAR.GZ и TAR.BZ2) да използвате за създаване на архиви. Е, всичко зависи от вашите цели. С други думи, зависи какво търсите – компресиране или обикновено архивиране.

Ако искате да архивирате файл или набор от файлове в един, без да го компресирате, форматът TAR е това, от което се нуждаете.

Въпреки това, ако се желае компресиране, трябва да се вземат предвид другите два избора, TAR.GZ и TAR.BZ2. И така, кой от двамата е по-добър?

Така стоят нещата. Използване на GZIP (tar.gz) компресия вместо BZIP2 (tar.bz2) е по-бързият вариант. Освен това, той е и ефективен от паметта.

От друга страна, BZIP2 компресията е малко по-бавна от GZIP, но прилага по-високо ниво на компресия. В резултат на това файлът ще бъде до 15% по-малък от същия файл, архивиран чрез GZIP компресия.

Така че, въз основа на тази информация, всеки от вас може да реши къде и каква компресия да използва въз основа на изискванията на ситуацията.

Заключение

Това ръководство обяснява как да използвате командата tar на Linux за създаване tar, tar.gzи tar.bz2 архиви. Освен това вече имате ясно разбиране за разликите между тях.

Разбира се, съществуват и други допълнителни методи за създаване на компресирани архиви в Linux. ZIP форматът обаче е най-известният на потребителите, идващи от Windows. Следователно двете ръководства по-долу ще ви бъдат полезни, ако искате да научите как бързо и без усилие да създавате и разархивирате zip файлове в Linux.

Надяваме се да сме ви били полезни. Всякакви отзиви са добре дошли в раздела по-долу.

Можете да се обърнете към tar команда man страница за повече информация за него.

Публикациите се превеждат автоматично с google translate


Сподели