O UNIX / Linux não possui a mesma herança DOS / CP / M anterior que o Windows. Portanto, as extensões geralmente são menos significativas para a maioria dos utilitários e ferramentas UNIX.
Eu normalmente uso um ambiente somente de linha de comando. Extensões nesse ambiente no Linux não são realmente significativas, exceto como uma conveniência para o operador ou usuário. (Não tenho experiência suficiente com o KDE ou o GNOME para saber como os gerenciadores de arquivos lidam com as extensões.)
Mas essa conveniência geralmente é importante. Se config.ini
realmente estiver no formato ".ini" padrão da Microsoft, eu deixaria a extensão em pé. Arquivos de texto antigos simples normalmente não possuem extensão no Linux, mas isso não é universal para todos os arquivos de configuração de programas. O programador geralmente decide isso.
Eu acho que ".txt" é útil no Linux se você quiser enfatizar que NÃO é um arquivo de configuração ou outro documento legível por máquina. No entanto, nas distribuições de código-fonte, a convenção é nomear esses arquivos com todas as letras maiúsculas sem uma extensão (por exemplo, README, INSTALL, COPYING etc.)
Existem alguns padrões e convenções, mas nada impede você de nomear o que quiser, a menos que esteja compartilhando coisas com outras pessoas.
No Windows, nomear um arquivo .exe
indica para o shell (geralmente explorer.exe
) que é um arquivo executável. O UNIX constrói esse conhecimento nas permissões do sistema de arquivos. Se os x
bits apropriados (veja man chmod
) são definidos, ele é reconhecido como executável pelas funções shells e kernel (acredito). Além disso, o Linux não se importa, a maioria dos shells não se importa, e a maioria dos programas procura no arquivo para descobrir que é "tipo".
Obviamente, existe o comando legal file
que pode analisar o arquivo e dizer o que é com certo grau de certeza. Acredito que, se não puder corresponder os dados no arquivo com nenhum tipo conhecido, e se contiver apenas caracteres ASCII / Unicode imprimíveis, será considerado um arquivo de texto.
@ Bruce Ediger abaixo está absolutamente correto. Não há nada no nível do kernel ou do sistema de arquivos, ou seja, o próprio Linux, impondo ou importando que o conteúdo de um arquivo precise corresponder ao seu nome ou ao programa que deve entendê-lo. Isso não significa que não é possível criar um utilitário de shell ou iniciador para fazer coisas com base no nome do arquivo.