Тази статия ви показва най-добрите практики за създаване на архиви 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
Основното нещо, което трябва да се отбележи тук е, че -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 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.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, 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