TAR архив (.tar)
POSIX.1-1988 СтандартTape Archive (TAR) е широко разпространеният файлов формат за пакетиране в Unix и Linux, който обединява множество файлове, директории и файлови метаданни в един единствен некомпресиран поток, предназначен за резервни копия на магнитна лента и софтуерна дистрибуция.
Конвертиране от ZIP към TAR
Безплатен конвертор от ZIP към TAR в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Проверка и метаданни
Операционните системи и файловите анализатори идентифицират TAR файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на заглавката (сигнатурни байтове)
Операционните системи и файловите анализатори идентифицират TAR файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 257):
75 73 74 61 72ASCII ПРЕДСТАВЯНЕ: 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 (Текущ) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| Вградена компресия | Няма (чист контейнер за пакетиране) | Вградена 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'), презаписващо критични системни файлове по време на извличане.
- Състезателни условия със символични връзки, създаващи символични връзки към системни директории, последвани от запис на файлове.
- Отказ от услуга чрез циклещи се цикли от твърди връзки.
Най-добри практики за защита: Строго санирайте пътищата на архивираните файлове и отхвърляйте всеки запис, съдържащ препратки към родителска директория ('..').
Исторически произход и етапи
Основни предимства
- Точно запазване на характеристиките на 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 директно във вашия уеб браузър.
Свързани двойки за конвертиране на TAR
Конвертирането на ZIP архив в TAR архив преобразува компресиран файлов контейнер в некомпресиран формат на лентов архив (TAR), подходящ за Unix среди.
Конвертирането на TAR архив в ZIP архив преобразува некомпресиран Unix контейнер в универсално достъпен, компресиран файлов формат.
Конвертирането на TAR архив в GZIP архив обединява некомпресирана колекция от файлове в един компресиран поток с алгоритъма DEFLATE без загуба на данни, за да намали значително размера на файла.
Извлечете TAR данните от TAR архив, компресиран с GZIP, например .tar.gz или .tgz.