Словарь

Что такое имя файла в архиве?

Имя файла в архиве - это имя, которое архив GZIP, RAR или 7z записывает для файла, хранящегося внутри него. Обычно оно отличается от имени самого архива.

archived-file-name

Файл в архиве - это файл, сохраненный внутри архива, например 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 с зашифрованными заголовками зашифрованы и заголовки, в которых хранятся имена.

Мета-ключи