O UNIX / Linux não possui o mesmo histórico DOS / CP / M herdado do Windows. Portanto, as extensões são geralmente menos significativas para a maioria dos utilitários e ferramentas do UNIX.
Eu geralmente uso um ambiente somente de linha de comando. As extensões em tal ambiente no Linux não são realmente significativas, exceto como uma conveniência para o operador ou usuário. (Eu não tenho experiência suficiente com o KDE ou o GNOME para saber como seus gerenciadores de arquivos lidam com extensões.)
Mas tal conveniência é geralmente importante. Se config.ini
estiver realmente no formato ".ini" padrão da Microsoft, deixarei a extensão em vigor. Arquivos de texto antigos não carregam extensões no Linux, mas isso não é universal para todos os arquivos de configuração de programas. O programador geralmente decide isso.
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 origem, a convenção é nomear todos esses arquivos sem uma extensão (ou seja, README, INSTALL, COPYING, etc.)
Existem alguns padrões e convenções, mas nada impede você de nomear qualquer coisa que você queira, a menos que você esteja compartilhando coisas com outras pessoas.
No Windows, nomear um arquivo .exe
indica ao shell (geralmente explorer.exe
) que é um arquivo executável. O UNIX cria esse conhecimento nas permissões do sistema de arquivos. Se os x
bits apropriados (ver man chmod
) estiverem configurados, ele será reconhecido como executável por shells e funções de kernel (acredito). Além disso, o Linux não se importa, a maioria das shells não se importa, e a maioria dos programas procura no arquivo para encontrar o "tipo".
Claro, há o comando nice file
, que pode analisar o arquivo e dizer o que é com um grau de certeza. Acredito que, se não puder corresponder os dados no arquivo com qualquer tipo conhecido, e se ele contiver apenas caracteres ASCII / Unicode imprimíveis, então ele assumirá 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, reforçando ou cuidando que o conteúdo de um arquivo precise corresponder ao seu nome ou ao programa que deve compreendê-lo. Isso não significa que não é possível criar um utilitário shell ou launcher para fazer coisas com base no nome do arquivo.