Архів TAR (.tar)
POSIX.1-1988 СтандартTape Archive (TAR): це поширений формат упакування файлів для Unix і Linux, який об'єднує кілька файлів, каталогів і метаданих файлової системи в єдиний нестиснений потік, призначений для створення резервних копій на магнітній стрічці та розповсюдження програмного забезпечення.
Конвертувати з ZIP у TAR
Безкоштовний конвертер з ZIP у TAR у браузері. Миттєво конвертуйте файли на своєму пристрої.
Аналіз та метадані
Операційні системи та аналізатори файлів ідентифікують файли TAR, перевіряючи початкову послідовність бінарних байтів:
Сигнатура заголовка на байтовому рівні (Magic Bytes)
Операційні системи та аналізатори файлів ідентифікують файли TAR, перевіряючи початкову послідовність бінарних байтів:
ШІСТНАДЦЯТКОВА СИГНАТУРА (ЗСУВ 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 | Вибрані атрибути POSIX, символічні посилання, UID/GID | Обмежена підтримка дозволів Unix | Зберігає базові дозволи | Вибрані атрибути POSIX |
| Потокове витягування | Повне потокове витягування з каналів | Вимагає читання центрального каталогу в кінці файлу (EOF) | Вимагає читання кінцевого заголовка | Повне потокове витягування |
| Довільний доступ до файлів | Повільний (лінійне послідовне сканування) | Миттєвий (пошук за центральним каталогом) | Помірний (пошук за індексом) | Повільний (лінійне послідовне сканування) |
Типові режими пошкодження та посібник з відновлення в шістнадцятковому форматі
Помилка витягування: 'tar: Skipping to next header' або 'A lone zero block at X'.
Першопричина: Пошкоджене вирівнювання 512-байтових блоків або передчасне завершення потоку.
Відновлення: Розпакуйте архів за допомогою 'tar -i', щоб ігнорувати пошкоджені блоки, або відновіть його за допомогою File2File.app Tar Tool.
Аналіз безпеки та векторів атак на парсери
Програми розпакування TAR повинні ретельно перевіряти шляхи файлів, щоб запобігти довільному перезапису файлів через атаки обходу каталогу.
Відомі вектори атак
- Атака типу 'Slip' з обходом каталогів (наприклад, '../etc/passwd'), що перезаписує критичні системні файли під час витягування.
- Вразливості типу «гонитва умов», коли символічні посилання на системні каталоги створюються перед записом файлів.
- Відмова в обслуговуванні через циклічні петлі жорстких посилань.
Рекомендації щодо захисту: Суворо перевіряйте шляхи файлів архіву та відхиляйте будь-які елементи, що містять посилання на батьківські каталоги ('..').
Історичне походження та віхи
Основні переваги
- TAR може зберігати дозволи Unix, символічні посилання та ідентифікатори власників. Перевірте, чи відновлює ці поля засіб розпакування, особливо під час розпакування у Windows або іншій системі з іншими правилами дозволів.
- Конструкція, орієнтована на магнітну стрічку: архів можна витягувати безпосередньо з мережевого каналу, не перемотуючи його до кінця файлу.
- Менеджери пакетів Linux і засоби для контейнерів часто поширюють файли в архівах TAR, зазвичай стиснених у форматах .tar.gz або .tar.zst.
Технічні обмеження та недоліки
- Відсутність нативного стиснення: нестиснений файл .tar має приблизно такий самий розмір, як і сукупність нестиснених вихідних файлів.
- Довільний доступ повільний: витягування одного файлу з середини масивного tar-архіву вимагає сканування від самого початку.
- Застарілі заголовки ustar обрізали імена файлів, довших за 100 символів (це обмеження усунуто в сучасному PAX/GNU tar).
Цікаві технічні факти
- Магічні байти 'ustar' розташовані за зміщенням 257 всередині кожного 512-байтового блоку заголовка.
- Спочатку TAR був написаний для фізичного керування 9-доріжковими бобінними магнітними стрічковими накопичувачами.
- Образи контейнерів Docker та OCI є буквально складеними наборами стандартних архівів .tar, що містять відмінності в кореневій файловій системі.
Поширені технічні запитання
Чому мій файл .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 для значного зменшення розміру файлу.
Витягніть дані TAR з архіву TAR, стиснутого GZIP, наприклад .tar.gz або .tgz.