Що таке файл TAR?
Файли з розширенням .tar — це архіви, створені за допомогою утиліти на основі Unix для збору одного або кількох файлів. Кілька файлів зберігаються в нестиснутому форматі з підтримкою додавання файлів, а також папок до архіву. Утиліта TAR в Unix працює на основі команд, але створені таким чином файли підтримуються більшістю систем архівування файлів у майже всіх операційних системах. Вперше він був створений у 1979 році лабораторіями AT&T Bell, і з часом були опубліковані наступні версії.
Формат файлу TAR
TAR — це відкритий формат файлу з повними специфікаціями, доступними для довідки розробникам. Його файлова структура була стандартизована в POSIX.1-1988 і пізніше в POSIX.1-2001. Набори даних, створені tar, зберігають інформацію про параметри файлової системи, такі як:
- Ім’я
- Мітки часу
- Право власності
- Права доступу до файлів
- Організація каталогу
Файл Tar не має магічного числа. Він містить серію блоків, де кожен блок має розмір BLOCKSIZE байтів.
Кожен заархівований файл представлений блоком заголовка, який описує файл, за яким іде нуль або більше блоків, які надають вміст файлу. У кінці архівного файлу є два 512-байтних блоки, заповнені двійковими нулями як маркер кінця файлу. Розумна система повинна записувати такий маркер кінця файлу в кінці архіву, але не повинна припускати, що такий блок існує під час читання архіву. Зокрема, GNU tar завжди видає попередження, якщо його не зустрічає.
Блоки можуть бути заблоковані для фізичних операцій введення/виведення. Кожен запис із n блоків (де n встановлюється опцією blocking-factor = 512-size для tar) записується за допомогою однієї операції «write()». На магнітних стрічках результатом такого запису є один запис. Під час запису архіву останній запис блоків має бути записаний у повному розмірі, причому блоки після нульового блоку містять усі нулі. Під час читання архіву розумна система повинна правильно обробляти архів, останній запис якого коротший за решта, або який містить сміттєві записи після нульового блоку.
Заголовок Tar
Як і будь-які інші заголовки файлів, запис заголовка файлу tar містить метадані про файл і показано в наступній таблиці.
Зміщення поля | Розмір поля (байти) | Поле |
---|---|---|
0 | 100 | Ім’я файлу |
100 | 8 | Режим файлу |
108 | 8 | Числовий ідентифікатор користувача власника |
116 | 8 | Числовий ідентифікатор користувача групи |
124 | 12 | Розмір файлу в байтах (вісімкова система) |
136 | 12 | Час останньої модифікації в числовому форматі часу Unix (вісімковий) |
148 | 8 | Контрольна сума для запису заголовка |
156 | 1 | Індикатор посилання (тип файлу) |
157 | 100 | Назва пов’язаного файлу |
Невикористані поля заповнюються нульовими байтами. Заголовок складається з 257 байтів, які доповнюються нульовими байтами, щоб заповнити 512-байтовий запис.