Não há resposta 100% em preto ou branco aqui.
Normalmente, o Linux não depende de nomes de arquivo (e extensões de arquivo, ou seja, a parte do nome do arquivo após o último período normalmente) e, em vez disso, determina o tipo de arquivo examinando os primeiros bytes de seu conteúdo e comparando-o a uma lista de números mágicos conhecidos. .
Por exemplo, todos os arquivos de imagem de bitmap (geralmente com extensão de nome .bmp
) devem começar com as letras BM
nos dois primeiros bytes. Os scripts na maioria das linguagens de script como Bash, Python, Perl, AWK etc. (basicamente tudo o que trata linhas que começam com #
como comentário) podem conter um shebang #!/bin/bash
como a primeira linha. Este comentário especial informa ao sistema com qual aplicativo abrir o arquivo.
Portanto, normalmente o sistema operacional depende do conteúdo do arquivo e não de seu nome para determinar o tipo de arquivo, mas afirmar que extensões de arquivo nunca são necessárias no Linux é apenas metade da verdade.
É claro que os aplicativos podem implementar suas verificações de arquivos da maneira que desejarem, o que inclui a verificação do nome e da extensão do arquivo. Um exemplo é o Eye of Gnome ( eog
visualizador de imagens padrão) que determina o formato da imagem pela extensão do arquivo e gera um erro se não corresponder ao conteúdo. Se isso é um bug ou um recurso pode ser discutido ...
No entanto, mesmo algumas partes do sistema operacional contam com extensões de nome de arquivo, por exemplo, ao analisar os arquivos de origem do software, /etc/apt/sources.list.d/
apenas os arquivos com a *.list
extensão são analisados e todos os outros são ignorados. Talvez não seja usado principalmente para determinar o tipo de arquivo aqui, mas para ativar / desativar a análise de alguns arquivos, mas ainda é uma extensão que afeta a maneira como o sistema trata um arquivo.
E, claro, os lucros usuário humano máximo de extensões de arquivo como que faz com que o tipo de um arquivo óbvio e também permite que vários arquivos com o mesmo nome de base e diferentes extensões como site.html
, site.php
, site.js
, site.css
etc. A desvantagem é, naturalmente, que a extensão de arquivo e o real o tipo / conteúdo do arquivo não precisa necessariamente corresponder.
Além disso, é necessário para interoperabilidade entre plataformas, como por exemplo, o Windows não saberá o que fazer com um readme
arquivo, mas apenas um readme.txt
.