Por que os arquivos tar e gzip geralmente possuem uma extensão de arquivo?

8

As extensões de arquivo não são necessárias em unices, ainda assim, todos os arquivos tarred, gzipped ou bzipped que encontro têm uma extensão de arquivo como .tar , .tar.gz ou .tgz .

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

    
por Mad Scientist 17.11.2010 / 19:17

3 respostas

17

Originalmente, em sistemas unix, as extensões em 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:

  • Apenas 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 é indicação de tipo de arquivo suficiente.
  • As executáveis destinadas a serem chamadas diretamente não possuem uma extensão. O simples fato de ser executável é informação suficiente para o usuário, e o kernel não se preocupa com nomes de arquivos.
  • Os arquivos que começam com uma palavra em maiúsculas geralmente são arquivos de texto, por exemplo, README , TODO . Às vezes, há uma parte adicional que indica uma subcategoria, por ex. INSTALL.linux , INSTALL.solaris .
  • Os arquivos cujo nome começa com um ponto são arquivos de configuração ou de estado de um aplicativo específico e geralmente não têm uma extensão, por exemplo, .bashrc , .profile , .emacs .
  • Existem alguns casos tradicionais, por ex. Makefile .

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

A maioria dos formatos de arquivo binário também contém algum tipo de cabeçalho que descreve as propriedades do arquivo e normalmente permite que o formato do arquivo seja identificado por meio de números mágicos . O comando file analisa essas informações e mostra seus palpites.

Às vezes, a extensão do arquivo fornece mais informações do que o formato do arquivo. Às vezes, ocorre 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 arquivos de código-fonte, onde a extensão indica a linguagem de programação, 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, .o é usado para arquivos de código compilados ( arquivos de objetos ), mas a inspeção O conteúdo do arquivo geralmente revela facilmente para qual tipo de máquina e sistema operacional o arquivo objeto é.

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

À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 web pode tratar .shtml e .html de forma diferente, o primeiro passando por algum pré-processamento do lado do servidor , o sendo este último servido como está.

No caso de arquivos gzip, gzip não recompactará arquivos cujo nome termine em .gz , .tgz e 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 serão modificados.

    
por 17.11.2010 / 21:02
8

Eles podem não precisar de uma extensão, mas com certeza torna mais fácil identificá-los na saída de ls .

    
por 17.11.2010 / 19:43
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 do nome do arquivo para fazer as coisas. Por exemplo, o Nautilus me mostra um ícone diferente baseado 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 der a você um arquivo chamado file.tar.gz ou file.tar , você poderá rapidamente e facilmente descobrir isso.

    
por 17.11.2010 / 19:44