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, который обеспечивает или заботится о том, чтобы содержимое файла совпадало с его именем или программой, которая должна его понимать. Это не означает, что невозможно создать утилиту оболочки или запуска, которая будет выполнять действия на основе имени файла.
В отличие от Windows, в системах UNIX тип файла не определяется расширением. Расширение файла является и было просто визуальным индикатором для людей. Вы можете назвать JPEG-файл foo.c и открыть его в Gimp. Другим отличием от Windows является то, что в системах UNIX вы должны использовать полное имя файла, в то время как Windows часто позаботится об этом за вас (например, работает только
explorer
противexplorer.exe
). На UNIXfoo.sh
надо называть какfoo.sh
, а не простоfoo
.По соглашению люди склонны использовать общий набор расширений. Эта практика, хотя и не нужна, но, вероятно, полезна для всего человечества.
источник
This practice…is probably beneficial for humanity at large
file
смотрит команда. (#!
магическое число для сценариев sh, например)В целом, я считаю, что соблюдение строгого, описательного соглашения об именах очень полезно. Вам не нужно расширение в Unix, но я бы оставил его по двум причинам:
1) Если этот файл когда-либо будет прочитан машиной Windows, его будет легче открыть, чем пытаться найти «открыть с помощью…».
2) Расширения помогают вам, пользователю, выяснить, что делает файл. В нашей лаборатории: .txt = текстовый файл .sgi = скомпилированный двоичный файл irix .linux = скомпилированный двоичный файл linux
Если вам нужно использовать более старые машины Unix (мы все еще используем IRIX), имейте в виду, что возврат каретки отличается на * nix машинах, и программы могут не оценить, если вы попытаетесь открыть файл с возвратами каретки Windows.
источник
Вы можете прочитать введение в файловую систему Unix .
источник
Есть несколько хороших ответов. Я хотел бы дополнительно ответить на часть исходного вопроса: «Любые общие ресурсы о том, как Linux обрабатывает расширения файлов, были бы полезны».
Можно зарегистрировать расширения, чтобы Linux всегда открывал определенные расширения с помощью определенных программ. Это средство называется binfmt .
источник
.txt можно открыть через разные приложения. но важно то, что он используется для классификации файлов определенного типа. Вы можете увидеть, сохраняем ли мы тот же файл, используя .html, который файл пытается открыть в Internet Explorer. приложения сделаны соответственно для поддержки таких типов файлов. Если вы используете .html выше, компилятор пытается найти в нем атрибуты html и соответственно показывает результат. то же самое с другими расширениями. INI-файл может быть прочитан как текст, но расширение классифицирует его как файл конфигурации, и, следовательно, компилятор рассматривает его как файл конфигурации, а не как обычный текстовый файл, так как текстовый файл является только набором записей и не имеет определенной функции. ini.hence вы бы не хотели менять расширение ini на текст
источник