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