TAR архив (.tar)
POSIX.1-1988 СтандартTape Archive (TAR) е универсалният файлов формат за пакетиране в Unix и Linux, който обединява множество файлове, директории и файлови метаданни в един единствен некомпресиран поток, предназначен за резервни копия на магнитна лента и софтуерна дистрибуция.
Конвертиране на ZIP към TAR
Безплатен конвертор от ZIP към TAR в браузъра. Конвертирайте файлове незабавно на вашето устройство.
Инспектиране и метаданни
Операционните системи и файловите анализатори идентифицират TAR файлове чрез проверка на началната двоична байтова последователност:
Байтов подпис на хедъра (Magic Bytes)
Операционните системи и файловите анализатори идентифицират TAR файлове чрез проверка на началната двоична байтова последователност:
HEX ПОДПИС (ОФСЕТ 257):
75 73 74 61 72ASCII ПРЕДСТАВЯНЕ: ustar
Стандартизация: POSIX.1-1988 (ustar) / POSIX.1-2001 (pax)
Технически спецификации
| Контейнерна архитектура | Sequence of 512-byte blocks: 512-byte file header followed by file data rounded up to 512 bytes, ending with two zero blocks |
| Компресия | Uncompressed archive container (designed to be piped into gzip, bzip2, xz, or zstd) |
| Поредност на байтовете (Endianness) | Octal ASCII string fields; big-endian numeric extensions |
| Цветови пространства | N/A (Archive Container) |
| Канали и структура | Unix file directory tree, symlinks, hardlinks, character/block devices, and FIFO pipes |
| Максимални размери | 8 GB limit in classic ustar; practically unlimited in modern PAX format |
| Прозрачност | Full preservation of POSIX file permissions, owner UID/GID, access times, and extended attributes |
| Стрийминг и прогресивно зареждане | Sequential stream-oriented design: can be written directly to physical magnetic tape drives |
Техническа сравнителна матрица: 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 Tar Tool.
Анализ на сигурността и вектори на атака към парсера
Програмите за извличане на TAR трябва да почистват файловите пътища, за да предотвратят произволно презаписване на файлове чрез атаки за преминаване през директории.
Известни вектори на атака
- Преминаване през директории тип 'Slip' (напр. '../etc/passwd'), презаписващо критични системни файлове по време на извличане.
- Състезателни условия със символични връзки, създаващи символични връзки към системни директории, последвани от запис на файлове.
- Отказ от услуга чрез циклещи се цикли от твърди връзки.
Защитни добри практики:
Исторически произход и етапи
Основни предимства и плюсове
- Верен запазване на пълната точност на Unix файловата система: POSIX права, символични връзки, твърди връзки и собственост.
- Потоково ориентиран към лента дизайн: може да бъде извлечен директно от мрежова тръба, без да се търси краят на файла.
- Универсален стандарт за всички Linux сървъри, контейнерни изображения (Docker/OCI) и Unix софтуерни дистрибуции.
Технически ограничения и минуси
- Липса на вградена компресия: некомпресираният .tar файл е с приблизително същия размер като сумарните сурови файлове.
- Произволното достъпване е бавно: извличането на един единствен файл от средата на огромен tarball изисква сканиране от самото начало.
- Старите 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 архив преобразува компресиран файлов контейнер в некомпресиран формат tape archive, подходящ за Unix среди.
Конвертирането на TAR архив в ZIP архив преобразува некомпресиран Unix контейнер в универсално достъпен, компресиран файлов формат.
Конвертирането на TAR архив в GZIP архив обвива некомпресирана колекция от файлове в един единствен компресиран поток, използвайки алгоритъма без загуба на данни DEFLATE за драстично намаляване на файловия размер.
Конвертирането на компресиран GZIP файл в TAR архив премахва слоя на компресия, за да разкрие суровата, некомпресирана колекция от файлове и папки.