Я задавался вопросом, что является потребностью вставить исполняемые команды a .sh
файл для создания единственного сценария, так как я могу сделать то же путем вставления команд a .txt
файл и создание его исполняемое использование chmod
.
Я предполагаю, что это может быть сделано с любым из расширений файла. Так, я вполне смущен потребностью в .sh
расширение. Любая справка очень ценилась бы.
Нет никакой потребности в расширении файла для соответствия чему-либо определенному, как Вы правильно узнали.
В подобных Unix системах типы файлов обычно получаются из содержания файла (т.е. "магическое число" или другие характерные структуры в первых нескольких байтах) а не с их имени. Вы могли также полностью опустить расширение, которое часто делается для исполняемых файлов.
Проверьте file
команда, это показывает Вам информацию, которую это может узнать о типе файла от его содержания.
Для исполняемого сценария система ожидает так называемую "хижину" в первой строке, которая смотрит, например, как
#!/usr/bin/env python3
и указывает который программа работать как интерпретатор с файлом сценария как аргумент. При выполнении текстового файла без такой хижины это будет использовать оболочку по умолчанию, т.е. Bash, чтобы попытаться интерпретировать его.
Таким образом в системах Unix/Linux, расширения файла являются главным образом подсказкой (но никакая гарантия), чтобы пользователь - человек быстро распознал, что ожидать, что определенный файл будет содержать. Это - также конвенция, которая может помочь, например, файлы открытия быстрее.
Обратите внимание, что существуют некоторые исключения, хотя, где имя и дополнительные вопросы (например, некоторые системные файлы конфигурации, которые должны следовать соглашению о присвоении имен, или многим программам просмотра изображений и редакторам также, требуют, чтобы расширение указало на тип файла).
Можно ли также взглянуть на расширения файла, имеют какую-либо цель (для операционной системы)?
В имени файла UNIX / Linux не существует такого понятия, как расширение или тип файла.
Как уже отмечали другие, «тип» можно найти с помощью команды file, предполагая, что соответствующая магия доступна в вашей системе. Имена файлов UNIX / Linux обычно могут содержать любой доступный символ, но часто полезно использовать некоторую форму соглашения для имени, чтобы и люди, и машины могли принимать решения относительно содержимого (и, следовательно, использования содержимого).
В качестве примера, я часто использую запятую в качестве первого символа имени файла для обозначения временного файла, вместо того, чтобы использовать что-то вроде строки «.tmp» в конце имени файла. Результат тот же, файл, содержащий данные, которые, возможно, требуются только в течение короткого времени, но имя не обязательно должно иметь «.» внутри него ни строки "tmp". Это может иногда иметь преимущества, например при разборе списка имен файлов. Но это МОЕ соглашение, и кто-то другой может выбрать другое, даже используя ".tmp" в качестве соглашения для имени временного файла.
Поэтому я отвечу вам, что не существует такого понятия, как расширение файла UNIX / Linux, а просто набор соглашений, которые обычно выглядят как расширения файлов, используемые в других операционных системах и их файловых системах.