Расширение файла: определение и типы¶
Расширение файла — последовательность символов, добавляемая к имени файла и используемая операционной системой или прикладным программным обеспечением для идентификации формата данных, хранящихся в этом файле. Расширение отделяется от основной части имени файла точкой и, как правило, состоит из двух-четырёх буквенно-цифровых символов (например, .txt, .jpg, .exe). Оно позволяет системе сопоставить файл с соответствующей программой для его открытия и обработки, а пользователю — быстро определить тип содержимого.
¶История возникновения
Практика добавления суффикса к имени файла для обозначения его типа возникла в 1960-х годах в операционной системе Compatible Time-Sharing System (CTSS) Массачусетского технологического института. В этой системе имя файла состояло из двух частей, разделённых точкой, где вторая часть обозначала тип данных. В 1970-х годах концепция расширений была развита в операционной системе UNIX, где расширение стало лишь соглашением, а не обязательным атрибутом, так как тип файла определялся по его содержимому (magic number).
Решающее влияние на распространение расширений оказала операционная система MS-DOS компании Microsoft, выпущенная в 1981 году. Файловая система FAT, использовавшаяся в MS-DOS, имела жёсткое ограничение на формат имени: до 8 символов основной части и до 3 символов расширения (так называемый формат 8.3). Это ограничение было унаследовано ранними версиями Windows и закрепило трёхбуквенные расширения как стандарт де-факто для персональных компьютеров. Современные файловые системы (NTFS, ext4, APFS) сняли ограничение на длину и обязательность расширения, однако практика его использования сохранилась по причинам совместимости и удобства.
¶Функции расширения
Основная функция расширения — установление ассоциации файла с прикладной программой. Операционная система хранит реестр соответствий между расширениями и установленными приложениями. При попытке открыть файл система считывает его расширение и запускает соответствующую программу. Например, двойной щелчок по файлу report.docx в ОС Windows запустит Microsoft Word или другое приложение, зарегистрированное для обработки данного типа файлов.
Расширение также выполняет информационную функцию для пользователя. По нему можно судить о типе данных: текстовый документ, изображение, исполняемый файл или архив. Однако эта функция не является абсолютно надёжной: расширение может быть изменено пользователем вручную, что не изменит фактическое содержимое файла, но приведёт к ошибке при попытке его открытия.
¶Классификация расширений
Расширения файлов можно классифицировать по нескольким признакам.
¶По типу содержимого
- Текстовые и документы:
.txt,.doc,.docx,.pdf,.odt,.rtf. - Таблицы и презентации:
.xls,.xlsx,.ppt,.pptx. - Изображения:
.jpg/.jpeg,.png,.gif,.bmp,.tiff,.svg. - Аудио:
.mp3,.wav,.flac,.aac,.ogg. - Видео:
.mp4,.avi,.mkv,.mov,.wmv. - Исполняемые файлы:
.exe,.com,.bat,.bin,.app(macOS). - Архивы:
.zip,.rar,.7z,.tar,.gz. - Веб-страницы и разметка:
.html,.htm,.css,.xml,.json. - Шрифты:
.ttf,.otf,.woff. - Системные и конфигурационные:
.dll,.sys,.ini,.cfg,.log. - Базы данных:
.db,.sqlite,.mdb. - Исходные коды программ:
.c,.cpp,.java,.py,.js,.php.
¶По характеру расширения
- Одночастные: классические расширения, состоящие из одной части (
.doc). - Составные: расширения, включающие несколько точек (
.tar.gz,.html.bak). В таких случаях последний сегмент обычно указывает на тип всего файла, а предшествующие — на промежуточные этапы обработки. - Длинные расширения: используются для более точного описания формата (
.jpeg,.mpeg,.docx). - Расширения без точки: встречаются в некоторых системах (например, в классической macOS), но в современных системах точка является обязательным разделителем.
¶Скрытие расширений и проблемы безопасности
Во многих операционных системах, в частности в Microsoft Windows, по умолчанию включена функция скрытия известных расширений для зарегистрированных типов файлов. Это сделано для упрощения интерфейса, но создаёт серьёзную угрозу безопасности. Злоумышленники используют данную особенность для маскировки вредоносных исполняемых файлов под безобидные документы или изображения. Классический приём — создание файла с именем photo.jpg.exe, который при скрытых расширениях отображается как photo.jpg. Пользователь, полагая, что открывает изображение, запускает вредоносную программу.
Для снижения рисков рекомендуется отключать скрытие расширений в настройках системы, а также с осторожностью относиться к файлам с двойными расширениями, полученными из ненадёжных источников. Дополнительную защиту обеспечивают антивирусные программы, проверяющие фактическое содержимое файла независимо от его расширения.
¶Расширение и формат: соотношение понятий
Необходимо различать расширение файла и его формат. Расширение — это лишь часть имени файла, соглашение об именовании. Формат — это структура данных, внутренняя организация содержимого файла. В большинстве случаев расширение корректно отражает формат, однако возможны расхождения. Файл может иметь расширение .txt, но содержать внутри данные в формате HTML — он откроется в текстовом редакторе как обычный текст. И наоборот, корректный файл формата JPEG с переименованным расширением .data останется изображением, но система не сможет автоматически определить программу для его открытия.
Некоторые форматы имеют несколько допустимых расширений (например, .jpg и .jpeg для формата JPEG, .htm и .html для HTML). Другие форматы, такие как GIF или PNG, жёстко привязаны к одному расширению.
¶Специфические случаи использования
В операционных системах семейства UNIX и Linux расширения не являются обязательными, и тип файла определяется по сигнатуре — первым байтам содержимого. Однако для удобства пользователей и совместимости с другими системами расширения также широко применяются. Системная утилита file анализирует содержимое и выводит фактический тип файла, игнорируя его имя.
В macOS расширения также не являются строго обязательными, но система использует их для определения типа, если файл не имеет атрибута типа из метаданных Finder.
В веб-среде расширение файла в URL-адресе не всегда отражает реальный формат отдаваемого сервером содержимого. Тип данных в протоколе HTTP передаётся в заголовке Content-Type, и сервер может отдавать динамически сгенерированный контент (например, PDF-файл) под любым адресом без соответствующего расширения.
¶Эволюция и будущее расширений
С развитием облачных технологий и кроссплатформенных решений значение расширений как жёсткого атрибута постепенно снижается. Современные операционные системы и приложения всё чаще опираются на MIME-типы и метаданные файловых систем. Тем не менее расширения остаются универсальным и простым механизмом идентификации типов, поддерживаемым всеми популярными платформами, и их использование сохранится в обозримой перспективе благодаря инерции экосистемы и привычке пользователей.
¶Источники
- Танейбаум Э., Бос Х. Современные операционные системы. — СПб.: Питер, 2019.
- Руссинович М., Соломон Д. Внутреннее устройство Microsoft Windows. — СПб.: Питер, 2013.
- Документация Microsoft Learn: «File extensions in Windows».
- Спецификация форматов файлов на сайте Library of Congress (Sustainability of Digital Formats).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →

