logo

Команда Tar в Linux/Unix с примери

Командата tar е съкращение от лентов архив в Linux. Тази команда се използва за създаване на архив и извличане на архивните файлове. в Linux , това е една от основните команди, които улесняват функционалността за архивиране. Можем да използваме тази команда за създаване на некомпресирани и компресирани архивни файлове и също така да ги променяме и поддържаме.

Tar е помощна програма на компютърен софтуер за събиране на няколко файла в един архивен файл в компютъра. Често е известен като tarball за целите на архивиране и разпространение. Заглавието е взето от „tape archive“, защото всъщност е разработено, за да специфицира данни на последователни I/O устройства, използващи нито една от техните файлови системи. Групите архивни данни, създадени от tar, включват много параметри на файловата система като организация на директория, разрешение за достъп до файл, собственост, времеви клейма и име. В полза на pax, POSIX изостави tar, tar все пак намира широко приложение.

Първо, беше обявено във версия 7 Unix през януари 1979 г., замествайки програмата tp. За съхраняване на данните файловата структура беше стандартизирана в POSIX.1-1988 и по-късно в POSIX.1-2001 и се превърна в модел, поддържан от почти всички съвременни системи за архивиране на файлове. Unix-подобните операционни системи обикновено съдържат инструменти за поддържане на tar файлове и помощни програми, използвани за тяхното компресиране, като bzip2 и gzip.
След актуализацията на Microsoft от 10 април 2018 г. BSD-tar се съдържа в Microsoft Windows и има два или повече инструмента на трети страни за четене и писане на тези модели в Windows.

Файлови формати на tar

Има много налични файлови формати tar, включително текущи и исторически. В POSIX са написани два tar формата: pax и ustar.

Заглавка

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

В следващата таблица са споменати няколко полета, дефинирани от действителния Unix tar формат. Таблицата за тип файл/индикатор за връзки съдържа няколко модерни разширения. Едно поле се попълва с различни NUL байтове, ако не се използва.

Преди POSIX.1-1988 tar заглавка:

Поле Размер на полето Отместване на полето
Име на файл 100 0
Файлов режим 8 100
Цифров потребителски идентификатор на собственика 8 108
Цифров потребителски идентификатор на групата 8 116
Размер на файла в байт 12 124
Време на последна модификация под формата на числово време на Unix 12 136
Контролна сума за заглавния запис 8 148
Индикатор за връзка 1 156
Име на свързания файл 100 157

Ustart формат

Във формата Ustar почти всяка съвременна tar програма записва и чете архиви, обявен от стандарта POSIX IEEE P1003.1 от 1988 г. Той въвежда допълнителни полета за заглавки. Предишните tar програми избягваха допълнителната информация, но новите програми ще проверяват наличието на низа 'Ustar', за да решат дали се използва по-новият формат.

Поле Размер на полето Отместване на полето
Много полета, както в предишния формат 156 0
Тип флаг 1 156
Подобно поле като в предишния формат 100 157
'ustar' Индикатор Ustar, след това NUL 6 257
'00' Ustar версия 2 263
Потребителско име на собственика 32 265
Име на групата на собственика 32 297
Основен номер на устройството 8 329
Малък номер на устройството 8 337
Префикс на името на файла 155 3. 4. 5

POSIX.1-2001/pax

Sun предложи техника за добавяне на разширения към формат tar през 1997 г. По-късно тя беше одобрена за стандарта POSIX.1-2001. Форматът се нарича pax формат или разширен формат tar. Някои тагове са определени от стандарта POSIX, включително mtime, atime, linkpath, gname, uname, sizes, gid, uid и дефиниция на набор от символи за имена на групи/потребители и имена на пътища.

Ключови реализации на tar

Ключовите реализации са споменати в реда на произход:

    соларис катран идва по подразбиране в операционната система Solaris, базирана на действителния Unix V7. GNU катран е по подразбиране в почти всяка Linux дистрибуция. Базиран е на pdtar за обществено достояние, който започна през 1987 г. Последните издания могат да използват много формати, като GNU, pax, v7 и ustar. FreeBSD tar се превърна в tar по подразбиране в почти всяка операционна система, базирана на Berkeley Software Distribution, като Mac OS X. Шили катран е исторически важен, тъй като няколко от неговите разширения бяха известни. Издадена е за първи път през април 1997 г. Python tarfile поддържа два или повече tar формата, като gnu, pax и ustar; може да чете, но не и да прави форматите SunOS tar extended и V7; pax е формат по подразбиране за създаване на архив. Той е достъпен за потребители от 2003 г.

Освен това, повечето реализации на cpio и pax могат да създават и четат два или повече типа tar файлове.

Синтаксис на командата tar:

 tar [options] [archive-file] [directory or file to be archived] 

Опции в командата tar

Различните опции в командата tar са изброени по-долу:

    -° С:Тази опция се използва за създаване на архив.-f:Тази опция се използва за създаване на архив заедно с предоставеното име на файла.-х:Тази опция се използва за извличане на архиви.-във:Може да се използва за добавяне на архив към съществуващия архивен файл.-T:Използва се за показване или изброяване на файлове в архивирания файл.-А:Тази опция се използва за свързване на архивните файлове.-във:Може да се използва за показване на подробна информация.-j:Използва се за филтриране на архивни tar файлове с помощта на tbzip.-С:Това е zip файл и информира командата tar, която прави tar файл с помощта на gzip.-r:Тази опция се използва за актуализиране и добавяне на директория или файл в съществуващ .tar файл.-IN:Тази опция се използва за проверка на архивния файл.

Въведение в архивния файл

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

Примери за команда tar

Някои от важните примери, които се използват широко в командата tar, са следните:

1. Създаване на некомпресиран tar архив с -cvf опция

Тази опция прави tar файл, известен като file.tar . Това е архивът на всеки .txt файл вътре mydir указател.

Командата е следната:

 $ tar cvf file.tar *.txt 

Tar команда в Linux

2. Извличане на файлове през архива с опция -xvf

Тази опция може да извлича файлове чрез архиви.

Командата е следната:

 $ tar xvf file.tar 

Tar команда в Linux

3. gzip компресия върху tar архив с опция -z

Тази опция прави tar файл, известен като file.tar.gz. Това е архивът на всеки .txt файл.

Командата е следната:

 $ tar cvzf file.tar.gz *.txt 

Tar команда в Linux

4. Извличане на gzip tar архива с опцията -xvzf

Тази опция може да извлече файловете чрез file.tar.gz tar архивирани файлове.

Командата е следната:

 $ tar xvzf file.tar.gz 

Tar команда в Linux

5. Създаване на компресирани tar файлове с опцията -j

Тази опция ще ни помогне да създаваме и компресираме архивни файлове. И декомпресирането, и компресирането отнемат повече време в сравнение с gzip.

Командата е следната:

 $ tar cvfj file.tar.tbz hello1.txt 

Tar команда в Linux

6. Разархивирайте отделна указана директория или файл в Linux

Тази опция се използва за разархивиране на всеки файл в нашата текуща директория или в указаната директория с опцията -C.

Командата е следната:

 $ tar -xvf file.tar -C file's path in the directory 

Tar команда в Linux

Или,

 $ tar -xvf file.tar 

Tar команда в Linux

7. Разархивирайте множество .tar.tbz, .tar.gz, .tar файлове в Linux

Тази опция ще ни помогне да разпространение или извлечете повече от един файл от tar.bz2, tar.gz и архивен файл на tar.

Примерът за тази опция е следният:

 $ tar -jxvf file.tar.tbz 'hello1.txt' 

Tar команда в Linux

Или,

 $ tar -zxvf file.tar.gz 'hello1.txt' 'hello2.txt' 

Tar команда в Linux

Или,

баш ако друго
 $ tar -xvf file.tar 'hello1.txt' 'hello2.txt' 

Tar команда в Linux

8. Проверете размера на съществуващия файл tar.tbz, tar.gz, tar

Командата ще ни помогне да покажем размера на архивния файл в килобайти (KB), който е споменат по-горе.

Командата е следната:

 $ tar -czf - file2.tar.tbz | wc -c 

Или,

 $ tar -czf - file1.tar.gz | wc -c 

Или,

 $ tar -czf - file.tar | wc -c 

Tar команда в Linux

9. Актуализирайте съществуващия tar файл

В Linux командата за актуализиране на съществуващ tar файл е както следва:

 $ tar rvf file.tar *.txt 

10. Списък със съдържание и описание на tar файла с опцията tf

Тази опция ще ни помогне да изведем списъка с целия архивен файл. Също така можем да изброим определено съдържание във всеки tar файл.

Командата е следната:

 $ tar tf file.tar 

Tar команда в Linux

11. Вижте архива с опцията -tvf

В Linux можем да използваме опцията -tvf, за да прегледаме архива.

Командата е следната:

 $ tar -tvf file.tar 

Tar команда в Linux

12. Подайте името на файла като аргумент за намиране на tar файл

Тази опция може да прегледа архивираните файлове с тяхната информация.

Командата е следната:

 $ tar tvf file.tar filename 

Tar команда в Linux

13. Използване на тръба за хвърляне на 'grep команда' за търсене на това, което търсим

Тази опция ще ни помогне да посочим само споменатото изображение или текст хватка чрез архивирани файлове.

Командата е следната:

 $ tar tvf file.tar | grep 'filename.file' 

Или,

 $ tar tvf file.tar | grep 'text to search' 

Tar команда в Linux

Въведение в заместващите знаци

Като алтернатива, заместващите символи се наричат ​​заместващ знак или заместващ знак в Linux. Това е символ, който се използва за представяне или заместване на множество знаци.

Обикновено заместващите знаци са или въпросителен знак (?), който илюстрира отделен знак, или звездичка (*), който илюстрира множество знаци.

пример-

14. Намерете изображение във формат .webp

Това ще ни помогне да извлечем само файлове заедно с разширението .webp от архива file.tar. Опцията -wildcards информира tar за интерпретиране на заместващи знаци в името на файла, който ще бъде извлечен.

Името на файла (*.webp) е оградено в единични кавички за защита на заместващия знак (*) от неправилно разширяване от която и да е обвивка.

Командата е следната:

 $ tar tvf file.tar --wildcards '*.webp' 

Tar команда в Linux

Забележка: В горната команда символът '*' се прилага в позицията на името на файла за вземане на всеки файл, наличен в тази конкретна директория.

15. Изтрийте файлове от tar архива

Можем да използваме опцията --delete за премахване на файлове и tar архив.

Командата е следната:

 $ tar --delete -f archive.tar file_name 

Пример:

 tar -delete -f file.tar hello1.txt 

Изход:

Tar команда в Linux

hello1.txt файлът е премахнат от архива file.tar:

Tar команда в Linux