Архив TAR (.tar)

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

Tape Archive (TAR) - это повсеместный формат упаковки файлов для Unix и Linux, объединяющий множество файлов, каталогов и метаданных файловой системы в единый несжатый поток, предназначенный для резервного копирования на магнитную ленту и распространения программного обеспечения.

Конвертировать из ZIP в TAR

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

Анализ и метаданные

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

Выберите или перетащите файлы сюда

100% конфиденциальное преобразование в браузере - файлы никогда не покидают ваше устройство

или вставьте Ctrl+V
Гарантия конфиденциальности без передачи по сети: 0 байт загружено на внешние серверы. Вся обработка выполняется локально в песочнице вашего браузера.

Сигнатура заголовка на уровне байтов (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 (Текущий)ZIP7ZCPIO
Встроенное сжатиеОтсутствует (чистый упаковочный контейнер)Встроенное сжатие DeflateВстроенное сжатие LZMA/LZMA2Отсутствует (чистый упаковочный контейнер)
Сохранение прав Unix100% атрибутов 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'), перезаписывающий критические системные файлы во время извлечения.
  • Состояния гонки символических ссылок, создающие символические ссылки на системные каталоги с последующей записью файлов.
  • Отказ в обслуживании из-за циклических циклов жестких ссылок.

Защитные лучшие практики: Строго очищайте пути к файлам архива и отклоняйте любые записи, содержащие ссылки на родительские каталоги ('..').

Исторические истоки и вехи

2001Стандарт IEEE POSIX.1-2001 представляет стандарт PAX (Portable Archive Interchange), устраняя устаревшие ограничения размера в 8 ГБ.
1988IEEE POSIX стандартизирует формат заголовка 'ustar' (Unix Standard Tar).
1979Представлен в Version 7 Unix (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 - это расширенный формат, поддерживающий неограниченную длину путей и разреженные файлы.

Как открыть файл .tar в Windows?

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