Заархівований файл це файл, збережений всередині архіву, наприклад у файлі GZIP, RAR або 7z. Ім’я заархівованого файла це ім’я цього збереженого файла, як його записано в архіві. Це ім’я відрізняється від імені файла самого архіву.
Наприклад, програма gzip перетворює файл з назвою example.png на файл з назвою example.png.gz. Архів отримує нове ім’я, але ім’я заархівованого файла всередині нього залишається example.png.
В інших контекстах «заархівований» означає, що файли було перенесено з щоденного використання до довгострокового сховища. У цій статті описано поле метаданих для файлів, збережених усередині файла архіву.
Які файли містять його
У програмі для роботи з метаданими ExifTool тег ArchivedFileName надходить з архівів GZIP, RAR і 7z. Для файла GZIP ExifTool зчитує ці теги лише для першого файла в архіві. Для архіву RAR або 7z програма зчитує кожен файл, але команда exiftool показує лише перше ім’я, якщо ви не додасте -a.
Архіви коміксів це звичайні архіви з іншими розширеннями. Файл CBR є архівом RAR, а файл CB7 є архівом 7z. Тому в цьому полі може відображатися ім’я зображення сторінки.
ZIP-архіви зберігають такий самий тип імені, але ExifTool показує його як ZipFileName. ExifTool також показує цей тег для деяких форматів на основі ZIP, наприклад документів DOCX. Комікс CBZ теж є ZIP-архівом.
Звідки походить значення
Програма архівації записує ім’я, коли додає файл до архіву. В архіві ZIP або RAR 5 кожен збережений файл має власний заголовок, у якому міститься ім’я.
GNU gzip типово зберігає вихідне ім’я файла, якщо ви не використовуєте параметр -n. Дані, що не походять з іменованого файла, взагалі не мають імені. Біт прапорця в заголовку GZIP показує, чи присутнє ім’я.
Як виглядає значення
Значенням є звичайна назва файла з його розширенням, наприклад example.png. В архівах ZIP і RAR 5 назва також може містити шлях до теки. Коса риска / розділяє назви тек.
Шлях у ZIP ніколи не починається з літери диска або слеша. Ім’я GZIP ніколи не містить тек, оскільки gzip їх прибирає.
Кожен формат також задає, які символи можна використовувати в імені:
- GZIP: ISO 8859-1, також відомий як Latin-1
- ZIP: стара IBM Code Page 437 або UTF-8, якщо про це вказує біт прапорця
- RAR 5: завжди UTF-8
Code Page 437 обмежує імена символами з початкового діапазону MS-DOS. UTF-8 підтримує повний стандарт Unicode, тому може зберігати літери набагато більшої кількості мов.
Чому це важливо
Поле показує, що знаходиться всередині архіву, ще до розпакування. Сам архів може мати будь-яке ім’я, але це поле містить ім’я та розширення збереженого файла.
Для файла GZIP значення зберігає початкове ім’я, навіть якщо пізніше хтось перейменує файл .gz. Команда gunzip типово ігнорує збережене ім’я, але параметр -N його відновлює.
Файл .tar.gz це архів TAR, стиснений за допомогою gzip. Якщо gzip стискав файл TAR як окремий іменований файл, значенням буде ім’я цього файла TAR. Якщо програма tar стискає архів у тому самому кроці, значення часто відсутнє.
Імена файлів можуть розкривати особисті деталі, наприклад ім’я людини або назву проєкту. Шифрування ZIP зазвичай захищає лише вміст файлів.
Імена, розміри та дати файлів залишаються доступними для читання, якщо архів додатково не використовує окрему функцію шифрування центрального каталогу. В архіві RAR 5 із зашифрованими заголовками зашифровано також заголовки, що містять імена.