Я использую расширения файлов по ряду причин. Во многих случаях это избавляет меня от проблем, связанных с неиспользованием расширения. Есть несколько случаев, когда использование расширения не дает преимущества, в основном при запуске программы.
В Unix/Linux расширения файлов не имеют смысла, когда дело доходит до выполнения файла. Это контролируется исполняемым битом. Интерпретатор языков сценариев указывается в первой строке с использованием пути взрыва, например #!/bin/bash
.
Для исполняемых файлов в стандартных каталогах стандартная практика - не указывать расширение. Тем не менее, также распространено использовать расширения для локально написанных сценариев. Это полезно при поиске примера или обычной практики на конкретном языке сценариев.
Для неисполняемых файлов расширение предоставляет ценную информацию о типе как пользователей, так и программ, которые их читают. Веб-серверы широко используют расширение файла при определении типа файла и, следовательно, какие заголовки применять. Компиляторы и программисты полагаются на расширения для определения типов файлов.
Некоторые инструменты будут использовать magic
файлы для определения типа файла на основе содержимого файла. Многие типы файлов содержат magic
значения в известных местах, и их можно использовать для надежного угадывания типа файла во многих случаях. Другие инструменты просто откроют файл, предполагая, что это соответствующий файл. Это позволяет воспроизводить текстовые файлы или изображения для редактирования текста, хотя ни один из них не рекомендуется.
В классификациях файлов часто встречаются несовместимые типы, которые обычно указываются расширением:
- Картинки: BMP, JPEG, GIF, PNG, TIFF ...
- Видео: mpg, rm, flv, wmv ...
- Звук: mp3, ogg, wav ...
- Документы: HTML, TXT, PDF, RTF, документ ...
Хотя некоторые инструменты могут обрабатывать несколько форматов, другие потерпят неудачу с одним или несколькими типами. Если вы пропустите расширение файла, скорее всего, вы будете использовать не тот инструмент, чтобы открыть некоторые файлы.
Есть также случаи, когда несколько связанных файлов различаются по расширению. Например, программа foobar
написанная на c
может быть результатом файлов foobar.c
, foobar.h
и foobar.o
.