TAR архив (.tar)

POSIX.1-1988 Стандарт

Tape Archive (TAR) е широко разпространеният файлов формат за пакетиране в Unix и Linux, който обединява множество файлове, директории и файлови метаданни в един единствен некомпресиран поток, предназначен за резервни копия на магнитна лента и софтуерна дистрибуция.

Конвертиране от ZIP към TAR

Безплатен конвертор от ZIP към TAR в браузъра. Конвертирайте файлове незабавно на вашето устройство.

Проверка и метаданни

Операционните системи и файловите анализатори идентифицират TAR файлове чрез проверка на началната двоична байтова последователност:

Изберете или пуснете файлове тук

Поверително - файловете никога не напускат устройството ви

или поставете Ctrl+V
Гаранция за поверителност с нулево мрежово предаване: 0 байта са качени на външни сървъри. Цялата обработка се извършва локално в пясъчниците на вашия браузър.

Байтов подпис на заглавката (сигнатурни байтове)

Операционните системи и файловите анализатори идентифицират TAR файлове чрез проверка на началната двоична байтова последователност:

HEX ПОДПИС (ОФСЕТ 257):

75 73 74 61 72

ASCII ПРЕДСТАВЯНЕ: ustar

Стандартизация: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)

Технически спецификации

Контейнерна архитектураПоредица от блокове по 512 байта: заглавка на файла от 512 байта, следвана от файловите данни, допълнени до кратност на 512 байта; завършва с два нулеви блока
КомпресияНекомпресиран архивен контейнер (предназначен за подаване към gzip, bzip2, xz или zstd)
Поредност на байтовете (Endianness)Осемерични ASCII текстови полета; числовите разширения използват ред от старшия към младшия байт (Big-Endian).
Цветови пространстваN/A (Archive Container)
Канали и структураФайлова структура на Unix с директории, символни и твърди връзки, символни и блокови устройства и FIFO канали
Максимални размериОграничение от 8 GB в класическия ustar; практически без ограничение в съвременния формат PAX
ПрозрачностFull preservation of POSIX file permissions, owner UID/GID, access times, and extended attributes
Поточно предаване и прогресивно зарежданеПоследователна структура за поточно обработване; може да се записва директно на физическа магнитна лента

Техническа сравнителна матрица: TAR спрямо конкуренти

Технически атрибутTAR (Текущ)ZIP7ZCPIO
Вградена компресияНяма (чист контейнер за пакетиране)Вградена Deflate компресияВградена LZMA/LZMA2 компресияНяма (чист контейнер за пакетиране)
Запазване на Unix права100% POSIX атрибути, символични връзки, UID/GIDОграничена поддръжка на Unix праваЗапазва основните права100% POSIX атрибути
Потоково извличанеПълно потоково извличане от тръбиИзисква четене на централната директория при EOFИзисква четене на крайното заглавиеПълно потоково извличане
Произволен достъп до файловеБавно (линейно последователно сканиране)Незабавно (търсене в централната директория)Умерено (търсене по индекс)Бавно (линейно последователно сканиране)

Често срещани видове повреди и ръководство за възстановяване на шестнадесетични данни

Грешка при извличане: 'tar: Skipping to next header' или 'A lone zero block at X'.

Първопричина: Повредено подравняване на 512-байтови блокове или преждевременно прекратяване на потока.

Възстановяване: Извлечете с 'tar -i', за да игнорирате повредените блокове, или поправете с File2File.app Tar Tool.

Анализ на сигурността и вектори на атака към парсера

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

Известни вектори на атака

  • Преминаване през директории тип 'slip' (напр. '../etc/passwd'), презаписващо критични системни файлове по време на извличане.
  • Състезателни условия със символични връзки, създаващи символични връзки към системни директории, последвани от запис на файлове.
  • Отказ от услуга чрез циклещи се цикли от твърди връзки.

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

Исторически произход и етапи

2001IEEE POSIX.1-2001 въвежда стандарта PAX (Portable Archive Interchange), преодолявайки старите ограничения за размер от 8 GB.
1988IEEE POSIX стандартизира формат на заглавната част 'ustar' (Unix Standard Tar).
1979Представен във Unix Version 7 (V7) от Bell Labs за запис на файлови дървета върху устройства с магнитна лента.

Основни предимства

  • Точно запазване на характеристиките на Unix файловата система: POSIX права, символични връзки, твърди връзки и собственост.
  • Потоково ориентиран към лента дизайн: може да бъде извлечен директно от мрежов канал, без да се търси краят на файла.
  • Универсален стандарт за всички Linux сървъри, контейнерни изображения (Docker/OCI) и Unix софтуерни дистрибуции.

Технически ограничения и минуси

  • Липса на вградена компресия: некомпресираният .tar файл е с приблизително същия размер като общия размер на изходните файлове.
  • Случайният достъп е бавен: извличането на един единствен файл от средата на огромен архив изисква сканиране от самото начало.
  • Старите ustar заглавни части съкращаваха имена на файлове, по-дълги от 100 символа (отстранено е в съвременния PAX/GNU tar).

Интересни технически факти

  • Магическите байтове 'ustar' се намират на байтов офсет 257 във всеки 512-байтов блок със заглавна част.
  • TAR първоначално е създаден за физическо управление на 9-пистови магнитни лентови устройства с макара.
  • Docker и OCI контейнерните изображения са буквално натрупани набори от стандартни .tar архиви, съдържащи разлики в основната файлова система.

Често задавани технически въпроси

Защо моят .tar файл не е компресиран?

TAR е само архиватор (той обединява файловете в един файл) и не извършва компресия сам по себе си. За да го компресирате, го комбинирайте с gzip, за да създадете .tar.gz файл.

Каква е разликата между ustar и GNU tar?

Ustar е стандартът POSIX от 1988 г. с ограничение от 100 знака за имената на файловете, докато GNU tar е разширен формат, поддържащ неограничени дължини на пътя и разредени (sparse) файлове.

Как мога да отворя .tar файл на Windows?

Windows 10 и 11 поддържат tar нативно през командния ред ('tar -xf file.tar') или можете да го извлечете с графичен интерфейс с помощта на File2File.app директно във вашия уеб браузър.