Здесь нет 100% черного или белого ответа.
Обычно Linux не полагается на имена файлов (и расширения файлов, т.е. часть имени файла после обычно последнего периода), а вместо этого определяет тип файла, изучая первые несколько байтов его содержимого и сравнивая его со списком известных магических чисел. ,
Например, все файлы растровых изображений (обычно с расширением имени .bmp
) должны начинаться с букв BM
в первых двух байтах. Скрипты в большинстве языков сценариев, таких как Bash, Python, Perl, AWK и т. Д. (В основном все, что обрабатывает строки, начинающиеся с #
комментария), могут содержать шебанг, как #!/bin/bash
в первой строке. Этот специальный комментарий сообщает системе, с помощью какого приложения открывать файл.
Поэтому обычно операционная система полагается на содержимое файла, а не на его имя, чтобы определить тип файла, но заявить, что расширения файлов никогда не нужны в Linux, - это только половина правды.
Приложения могут, конечно, осуществлять свои проверки файлов по своему усмотрению, включая проверку имени и расширения файла. Примером является Eye of Gnome ( eog
стандартный просмотрщик изображений), который определяет формат изображения по расширению файла и выдает ошибку, если он не соответствует содержимому. Будь то ошибка или особенность, можно обсудить ...
Однако даже некоторые части операционной системы полагаются на расширения имен файлов, например, при разборе исходных файлов вашего программного обеспечения /etc/apt/sources.list.d/
- *.list
анализируются только файлы с расширением, все остальные игнорируются. Возможно, он в основном используется не для определения типа файла, а для включения / отключения анализа некоторых файлов, но это все еще расширение файла, которое влияет на то, как система обрабатывает файл.
И, конечно, прибыль пользователей человека большинство из расширений файлов , как это делает тип файла очевидного , а также позволяет использовать несколько файлы с тем же базовым именем и различные расширения , такими как site.html
, site.php
, site.js
, site.css
расширение и т.д. Недостатком является то, конечно , этим файлом и фактическим Тип файла / содержание не обязательно должны совпадать.
Кроме того, это необходимо для межплатформенного взаимодействия, например, Windows не будет знать, что делать с readme
файлом, а только a readme.txt
.