Это слишком большое для ответа на комментарий.
Имейте в виду, что даже «расширение» имеет много разных значений.
То, о чем вы говорите, кажется, это 3 буквы после. DOS сделал формат 8.3 очень популярным, и окна используют часть .3 и по сей день.
Linux имеет много файлов, таких как .conf или .list или .d или .c, которые имеют смысл, но на самом деле не являются расширениями в смысле 8.3. Например, Apache ищет /etc/apache2/sites-enabled/website.conf для своей директивы конфигурации. Хотя система использует MIME-типы и заголовки содержимого, а что не означает, что это текстовый файл, Apache (по умолчанию) все равно не будет загружать его, не заканчивая на .conf.
.c - это другое Великий. Да, это текстовый файл, но gcc зависит от main.c становится main.o и, наконец, main (после ссылки). Ни в коем случае система не использует расширение .c, .o или no, чтобы иметь какой-либо смысл в отношении контента, но материал после. имеет некоторое значение. Вероятно, вы бы настроили SCM игнорировать main.o и main.
Точка точки такова: расширения не используются так, как они есть в окнах. Ядро не будет выполнять файл .txt, потому что вы удалите часть .txt имени. Также очень приятно выполнить файл .txt, если установлено разрешение на выполнение. При этом они имеют смысл и по-прежнему используются на «компьютерном уровне» для многих вещей.