UNIX / Linux не имеет того же раннего наследия DOS / CP / M, как Windows. Поэтому расширения, как правило, менее значимы для большинства утилит и инструментов UNIX.
Я обычно использую только среду командной строки. Расширения в такой среде под Linux не имеют большого значения, кроме как для удобства оператора или пользователя. (У меня недостаточно опыта работы с KDE или GNOME, чтобы знать, как их файловые менеджеры работают с расширениями.)
Но такое удобство обычно важно. Если config.ini
он действительно в стандартном формате Microsoft .ini, я бы оставил расширение в силе. Обычные старые текстовые файлы обычно не имеют расширения в Linux, но это не универсально для всех файлов конфигурации программ. Программист обычно решает это.
Я думаю, что «.txt» полезен в Linux, если вы хотите подчеркнуть, что это НЕ файл конфигурации или другой машиночитаемый документ. Однако в исходных дистрибутивах соглашение состоит в том, чтобы называть такие файлы заглавными буквами без расширения (т. Е. README, INSTALL, COPYING и т. Д.)
Существуют некоторые стандарты и соглашения, но ничто не мешает вам называть что угодно, если только вы не делитесь вещами с другими.
В Windows присвоение имени файлу .exe
указывает оболочке (обычно explorer.exe
), что это исполняемый файл. UNIX встраивает эти знания в разрешения файловой системы. Если установлены правильные x
биты (см. man chmod
), Они распознаются как исполняемые оболочками и функциями ядра (я полагаю). Помимо этого, Linux не волнует, большинство оболочек не заботятся, и большинство программ ищут в файле «тип».
Конечно, есть хорошая команда, file
которая может проанализировать файл и сказать вам, что это с определенной степенью уверенности. Я считаю, что если он не может сопоставить данные в файле с любым известным типом, и если он содержит только печатные символы ASCII / Unicode, то он предполагает, что это текстовый файл.
@ Брюс Эдигер ниже абсолютно прав. На уровне ядра или файловой системы нет ничего, то есть самого Linux, который обеспечивает или заботится о том, чтобы содержимое файла совпадало с его именем или программой, которая должна его понимать. Это не означает, что невозможно создать утилиту оболочки или запуска, которая будет выполнять действия на основе имени файла.