Por que os arquivos tar e gzip geralmente têm uma extensão de arquivo?

8

As extensões de arquivo não são necessárias nos unices, ainda que todos os arquivos com tar, gzip ou bzip que eu encontrar tenham uma extensão de arquivo como .tar, .tar.gzou .tgz.

Existe alguma razão especial para isso ou é apenas uma convenção?

Cientista maluco
fonte

Respostas:

17

Originalmente, em sistemas unix, as extensões nos nomes de arquivos eram uma questão de convenção. Eles permitiram que um ser humano escolhesse o programa certo para abrir um arquivo. A convenção moderna é usar extensões na maioria dos casos; exceções comuns são:

  • Somente arquivos regulares têm uma extensão, não diretórios ou nomes de dispositivos. O simples fato de ser um diretório ou dispositivo é suficiente para indicar o tipo de arquivo.
  • Os executáveis ​​que devem ser chamados diretamente não têm uma extensão. O simples fato de ser executável é uma informação suficiente para o usuário, e o kernel não se importa com nomes de arquivos.
  • Arquivos começando com uma palavra em todas as tampas são frequentemente arquivos de texto, por exemplo README, TODO. Às vezes, há uma parte adicional que indicam uma subcategoria, por exemplo INSTALL.linux, INSTALL.solaris.
  • Arquivos cujo nome começa com um ponto estão de configuração ou estaduais arquivos de um aplicativo específico, e muitas vezes não têm uma extensão, por exemplo .bashrc, .profile, .emacs.
  • Existem alguns casos tradicionais, por exemplo Makefile.

(Esses são casos comuns, não regras rígidas.)

A maioria dos formatos de arquivos binários também contém algum tipo de cabeçalho que descreve as propriedades do arquivo e geralmente permite que o formato do arquivo seja identificado por meio de números mágicos . O filecomando examina essas informações e mostra suas suposições.

Às vezes, a extensão do arquivo fornece mais informações que o formato do arquivo, às vezes é o contrário. Por exemplo, muitos formatos de arquivo consistem em um arquivo zip : bibliotecas Java ( .jar), documentos do OpenOffice ( .odt,…), documento do Microsoft Office ( .docx,…) etc. Outro exemplo são os arquivos de código-fonte, nos quais a extensão indica a linguagem de programação, que pode será difícil para um computador adivinhar automaticamente a partir do conteúdo do arquivo. Por outro lado, algumas extensões são extremamente ambíguas, por exemplo, .osão usadas para arquivos de código compilados (arquivos de objeto ), mas a inspeção do conteúdo do arquivo geralmente revela facilmente que tipo de máquina e sistema operacional o arquivo de objeto é.

Uma vantagem da extensão é que é muito mais rápido reconhecê-lo do que abrir o arquivo e procurar sequências mágicas. Por exemplo, a conclusão de nomes de arquivo em shells quase sempre se baseia no nome (principalmente na extensão), porque a leitura de todos os arquivos em um diretório grande pode demorar muito tempo, enquanto apenas a leitura dos nomes dos arquivos é rápida o suficiente para uma Tabimpressora.

Às vezes, alterar a extensão de um arquivo pode permitir que você diga como um arquivo deve ser interpretado, quando dois formatos de arquivo são quase, mas não totalmente idênticos. Por exemplo, um servidor da Web pode tratar .shtmle .htmldiferentemente, o primeiro passando por algum pré-processamento no servidor , o último sendo servido como está.

No caso de arquivos gzip, gzipnão vai arquivos Recompress cujas extremidades nome .gz, .tgze algumas outras extensões. Dessa forma, você pode executar gzip *para compactar todos os arquivos em um diretório e os arquivos já compactados não são modificados.

Gilles 'SO- parar de ser mau'
fonte
1
Diretório contendo scripts daemon também são dadas às vezes extensão .d, por exemplo init.d, cron.d, etc.
Lie Ryan
8

Eles podem não precisar de uma extensão, mas com certeza os identificam mais facilmente na saída de ls.

desenvolvimento
fonte
2
Exatamente. Normalmente, não existe uma bandeira "segure minha mão, por favor" para tarque você tenha que dizer que tipo de arquivo você tem.
Kevin Cantu
3

As extensões de arquivo são principalmente uma convenção para os humanos que usam o sistema. Existem ferramentas que usam a extensão de nome de arquivo para fazer as coisas. Por exemplo, o Nautilus me mostra um ícone diferente com base na extensão do arquivo.

Se eu lhe der um arquivo chamado file, talvez você não saiba como abrir esse arquivo. No entanto, se eu lhe der um arquivo com o nome file.tar.gzou file.tarvocê puder descobrir rápida e facilmente.

Stefan Lasiewski
fonte
5
O Nautilus usa mais do que apenas a extensão do arquivo para determinar o tipo de arquivo. Um arquivo tar.gz sem a extensão ainda receberá um símbolo sofisticado.
Steven D