aspose.info
RU

TAR — формат файла архива Unix

Обновлено

.TAR вариант №

Файлы с расширением .tar представляют собой архивы, созданные утилитой на базе Unix для сбора одного или нескольких файлов. Несколько файлов хранятся в несжатом формате с поддержкой добавления файлов, а также папок в архив. Утилита TAR в Unix основана на команде, но созданные таким образом файлы поддерживаются большинством систем архивации файлов практически во всех операционных системах. Впервые он был создан в 1979 году компанией AT&T Bell Laboratories, а последующие версии были опубликованы с течением времени.

Формат TAR-файла

TAR — это открытый формат файла с полными спецификациями, доступными для справки разработчика. Его файловая структура была стандартизирована в POSIX.1-1988, а затем в POSIX.1-2001. Наборы данных, созданные tar, сохраняют информацию о параметрах файловой системы, таких как:

  • Имя
  • Отметки времени
  • Владение
  • Разрешения на доступ к файлам
  • Организация каталогов

Файл Tar не имеет магического числа. Он содержит ряд блоков, каждый из которых имеет размер BLOCKSIZE байт.

Каждый заархивированный файл представлен блоком заголовка, описывающим файл, за которым следует ноль или более блоков, дающих содержание файла. В конце файла архива находятся два блока по 512 байт, заполненные двоичными нулями в качестве маркера конца файла. Разумная система должна записывать такой маркер конца файла в конце архива, но не должна предполагать, что такой блок существует при чтении архива. В частности, GNU tar всегда выдает предупреждение, если не встречает его.

Блоки могут быть заблокированы для физических операций ввода-вывода. Каждая запись из n блоков (где n задается параметром blocking-factor = 512-size для tar) записывается с помощью одной операции «write()». На магнитных лентах результатом такой записи является одна запись. При записи архива последняя запись блоков должна быть записана в полном размере, причем блоки после нулевого блока должны содержать все нули. При чтении архива разумная система должна правильно обрабатывать архив, последняя запись которого короче остальных или содержащий мусорные записи после нулевого блока.

Заголовок смолы

Как и любые другие заголовки файлов, запись заголовка файла tar содержит метаданные о файле и показана в следующей таблице.

Смещение поляРазмер поля (байты)Поле
0100Имя файла
1008Файловый режим
1088Цифровой идентификатор пользователя владельца
1168Цифровой идентификатор пользователя группы
12412Размер файла в байтах (восьмеричное основание)
13612Время последней модификации в числовом формате времени Unix (восьмеричное)
1488Контрольная сумма для записи заголовка
1561Индикатор ссылки (тип файла)
157100Имя связанного файла

Неиспользуемые поля заполняются байтами NUL. Заголовок состоит из 257 байтов, которые дополняются нулевыми байтами, чтобы заполнить запись размером 512 байт.

Использованная литература

См. также