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.
Diferentemente do Windows, nos sistemas UNIX, o tipo de arquivo não é determinado pela extensão. A extensão do arquivo é e foi simplesmente um indicador visual para humanos. Você pode nomear um JPEG foo.c e abri-lo no Gimp. Outro contraste do Windows é que, nos sistemas UNIX, você deve usar todo o nome do arquivo, enquanto o Windows costuma cuidar dele (por exemplo, executando apenas
explorer
vs.explorer.exe
). No UNIXfoo.sh
deve ser chamado comofoo.sh
, não simplesmentefoo
.Por convenção, as pessoas tendem a usar um conjunto comum de extensões. Essa prática, embora desnecessária, provavelmente é benéfica para a humanidade em geral.
fonte
This practice…is probably beneficial for humanity at large
file
comando está olhando. (#!
É o número mágico para scripts sh, por exemplo)Em geral, achei muito útil manter uma convenção estrita e descritiva de nomes. Você não precisa da extensão no Unix, mas eu a manteria por dois motivos:
1) Se esse arquivo for lido por uma máquina Windows, será mais fácil abrir do que tentar encontrar "abrir com ...".
2) Extensões ajuda você, o usuário, a descobrir o que o arquivo está fazendo. Em nosso laboratório: .txt = arquivo de texto .sgi = binário compilado irix .linux = binário compilado linux
Se você precisar usar máquinas unix mais antigas (ainda usamos o IRIX), lembre-se de que o retorno de carro é diferente em máquinas * nix, e os programas podem não ser agradáveis se você tentar abrir um arquivo com retorno de carro do Windows.
fonte
Você pode querer ler uma Introdução ao sistema de arquivos Unix .
fonte
Existem várias boas respostas. Gostaria de responder ainda a parte da pergunta original: "Quaisquer recursos gerais sobre como o Linux lida com extensões de arquivo seriam úteis".
É possível registrar extensões, para que o Linux sempre abra certas extensões com certos programas. Esse recurso é chamado de binfmt .
fonte
.txt pode ser aberto através de diferentes aplicativos. mas o importante é que ele seja usado para classificar o arquivo em determinado tipo. Você pode ver se salvamos o mesmo arquivo usando .html que o arquivo tenta abrir no Internet Explorer. os aplicativos são feitos de acordo para oferecer suporte a esses tipos de arquivo. Se você usar .html acima, o compilador tenta encontrar os atributos html nele e mostra o resultado de acordo. mesmo com as outras extensões. O arquivo .ini pode ser lido como texto, mas a extensão o classifica como arquivo de configuração e, portanto, o compilador o trata como arquivo de configuração, não como um arquivo de texto comum, pois o arquivo de texto é apenas um conjunto de registros e não possui uma função específica. Por isso, você não gostaria de alterar a extensão de ini para texto
fonte