Existe alguma desvantagem em não usar extensões de arquivo de texto?

0

Recentemente aprendi que as extensões de arquivo (pelo menos para texto simples) em um ambiente semelhante ao Unix geralmente não têm significado. Se um script bash tiver um .sh, .log, .txt ou .hgfjgfdjgd, ele ainda poderá ser executado se você torná-lo executável com chmod +x scriptname .

Após descobrir isso, eu lentamente comecei a prática (talvez ruim) do não usar mais as extensões de arquivo . Qualquer arquivo de texto geral ou script que eu escreva hoje em dia não tem uma extensão, e tudo ainda funciona como antes.

A primeira e única vantagem que posso imaginar para usar extensões de arquivo nessa situação é organização , tanto para você quanto para os outros (ou seja, as pessoas reconhecem um arquivo .sh como sendo um script). Mas além disso, eles parecem inúteis neste momento, pois acrescentam "complexidade" extra sem motivo.

O que eu estou fazendo é uma prática ruim? Os arquivos sem extensões são geralmente desaprovados? Quais outros usos as extensões têm para arquivos de texto simples que não estou vendo?

    
por LanceLafontaine 18.09.2014 / 18:04

2 respostas

6

As extensões do sistema de arquivos não têm nenhum significado dentro do kernel do Linux.

No entanto, vários aplicativos (servidores da Web, compiladores, editores, vinculadores) tendem a usar a extensão de arquivo propositalmente. Você poderia obter o compilador gcc para aceitar algum nome de arquivo source-file (ou mesmo bizarre.o ou strange.sh ) como algum arquivo de origem C , mas você precisará de alguns truques (a -x option). Além disso, você irá desagradavelmente surpreender outras pessoas.

BTW, você também pode nomear todos os seus arquivos como 0001 , 0002 , etc ... mas isso não é muito fácil de usar.

    
por 18.09.2014 / 18:15
2

Eu uso extensões de arquivo por diversos motivos. Em muitos casos, isso é para me poupar dos problemas resultantes do não uso de uma extensão. Há poucos casos que não estavam usando uma extensão fornece uma vantagem, principalmente ao executar um programa.

No Unix / Linux, as extensões de arquivo não têm significado quando se trata de executar um arquivo. Isso é controlado pelo bit executável. O interpretador de linguagens de script é especificado na primeira linha usando um caminho de estrondo, como #!/bin/bash .

Para arquivos executáveis em diretórios padrão, é prática padrão omitir a extensão. No entanto, também é comum usar extensões para scripts escritos localmente. Isso é útil ao procurar um exemplo ou prática comum em uma determinada linguagem de script.

Para arquivos não executáveis, a extensão fornece informações de tipo valiosas tanto para usuários quanto para programas que as lêem. Os servidores da Web usam extensivamente a extensão do arquivo para determinar o tipo de arquivo e, portanto, quais cabeçalhos aplicar. Compiladores e programadores dependem das extensões para determinar os tipos de arquivos.

Algumas ferramentas usarão magic arquivos para determinar o tipo de arquivo com base no conteúdo do arquivo. Muitos tipos de arquivo contêm valores de magic em locais conhecidos, e eles podem ser usados para adivinhar o tipo de arquivo de maneira confiável em muitos casos. Outras ferramentas apenas abrirão um arquivo, assumindo que é um arquivo apropriado. Isso permite que você reproduza arquivos de texto ou edite imagens de texto, embora nenhum deles seja recomendado.

Dentro das classificações de arquivos, geralmente há tipos incompatíveis que são normalmente indicados pela extensão:

  • Imagens: bmp, jpeg, gif, png, tiff ...
  • Vídeos: mpg, rm, flv, wmv ...
  • Som: mp3, ogg, wav ...
  • Documentos: html, txt, pdf, rtf, doc ...

Embora algumas ferramentas possam lidar com vários formatos, outras falharão com um ou mais tipos. Omitir a extensão do arquivo provavelmente levará você a usar a ferramenta errada para abrir alguns arquivos.

Existem também casos em que vários arquivos relacionados são diferenciados pela extensão. Por exemplo, um programa foobar escrito em c pode resultar dos arquivos foobar.c , foobar.h e foobar.o .

    
por 20.09.2014 / 02:22