Архив TAR (.tar)
POSIX.1-1988 СтандартTape Archive (TAR) - это повсеместный формат упаковки файлов для Unix и Linux, объединяющий множество файлов, каталогов и метаданных файловой системы в единый несжатый поток, предназначенный для резервного копирования на магнитную ленту и распространения программного обеспечения.
Конвертировать из ZIP в TAR
Бесплатный конвертер из ZIP в TAR прямо в браузере. Конвертируйте файлы мгновенно на вашем устройстве.
Анализ и метаданные
Операционные системы и анализаторы файлов идентифицируют файлы TAR по начальной двоичной последовательности байтов:
Сигнатура заголовка на уровне байтов (Magic Bytes)
Операционные системы и анализаторы файлов идентифицируют файлы 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) |
| Цветовые пространства | Н/Д (Архивный контейнер) |
| Каналы и структура | Дерево каталогов файлов Unix, символические ссылки, жесткие ссылки, символьные/блочные устройства и каналы FIFO |
| Макс. габариты | Лимит в 8 ГБ в классическом формате ustar; практически не ограничен в современном формате PAX |
| Прозрачность | Полное сохранение разрешений файлов POSIX, UID/GID владельца, времени доступа и расширенных атрибутов |
| Потоковая передача и прогрессивная загрузка | Последовательная потоковая архитектура: может записываться напрямую на физические накопители на магнитной ленте |
Техническая матрица сравнения: TAR против конкурентов
| Технический атрибут | TAR (Текущий) | ZIP | 7Z | CPIO |
|---|---|---|---|---|
| Встроенное сжатие | Отсутствует (чистый упаковочный контейнер) | Встроенное сжатие Deflate | Встроенное сжатие LZMA/LZMA2 | Отсутствует (чистый упаковочный контейнер) |
| Сохранение прав Unix | 100% атрибутов POSIX, символических ссылок, UID/GID | Ограниченная поддержка прав Unix | Сохраняет базовые разрешения | 100% атрибутов POSIX |
| Потоковое извлечение | Полное потоковое извлечение из каналов | Требуется чтение центрального каталога в конце файла (EOF) | Требуется чтение конечного заголовка | Полное потоковое извлечение |
| Произвольный доступ к файлам | Медленный (линейное последовательное сканирование) | Мгновенный (поиск по центральному каталогу) | Умеренный (поиск по индексу) | Медленный (линейное последовательное сканирование) |
Типичные режимы повреждения и руководство по восстановлению в HEX
Ошибка извлечения: 'tar: Skipping to next header' или 'A lone zero block at X'.
Первопричина: Поврежденное выравнивание 512-байтовых блоков или преждевременное завершение потока.
Восстановление: Извлеките с помощью параметра 'tar -i', чтобы пропустить поврежденные блоки, либо восстановите с помощью инструмента File2File Tar.
Анализ безопасности и векторы атак на парсер
Программы извлечения 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 - это расширенный формат, поддерживающий неограниченную длину путей и разреженные файлы.
Как открыть файл .tar в Windows?
Windows 10 и 11 поддерживают tar нативно через командную строку ('tar -xf file.tar'), либо вы можете извлечь его визуально с помощью File2File.app прямо в веб-браузере.
Связанные пары конвертации TAR
Конвертация ZIP-архива в TAR-архив преобразует сжатый файловый контейнер в несжатый формат архивной ленты, оптимизированный для сред Unix.
Конвертация TAR-архива в ZIP-архив преобразует несжатый Unix-контейнер в универсально доступный формат сжатого файла.
Конвертация TAR-архива в GZIP объединяет несжатую коллекцию файлов в единый сжатый поток с использованием алгоритма сжатия без потерь DEFLATE для радикального уменьшения размера файла.
Конвертация сжатого файла GZIP в TAR-архив удаляет слой сжатия, открывая исходную несжатую коллекцию файлов и папок.