Você tem permissão para criar qualquer extensão de arquivo desejada (para Unix, Linux, Windows)?

6

Eu quero criar um arquivo chamado "message" que contenha apenas texto. Como o sistema sabe qual programa usar para lê-lo se eu decidir chamá-lo:

  • message.txt?
  • message.dat?
  • message.enc?
  • message.cpz?
  • message.asdfasdf?
  • message.abcdefghijklmnopqrstuvwxyz?
  • message.this_is_so_random?
  • ou apenas "mensagem" sem extensão?

Eu queria saber isso para arquivos somente texto, mas e os arquivos que contêm vídeo e áudio?

    
por Dark Templar 17.09.2011 / 23:34

4 respostas

7

O Linux (/ Ubuntu) não depende da extensão do arquivo como o Windows faz. Cada arquivo tem uma parte dentro dele, onde ele se identifica sobre o que é. Para mostrar o que é um arquivo aleatório, temos o comando file . Alguns exemplos aleatórios:

$ file *
Aptana Studio 3:       directory
Create ubuntu live cd: ASCII English text, with very long lines
1.txt:      empty
gedit_open: Bourne-Again shell script text executable

Você também pode encontrar a linha de comando mimetype from:

$ file --mime-type -b 1.txt 
application/x-empty
$ file --mime-type -b gedit_open 
text/x-shellscript

Temos um ~/.local/share/applications/mimeapps.list onde você pode associar programas à extensão. Você pode definir aqueles com open with dentro de properties de um arquivo ao usar o Nautilus ou usando a linha de comando (veja link )

Então, basicamente, você pode fazer o que quiser com um nome de arquivo, mas eu sugiro usar por exemplo .conf para ele, se ele contém configurações, mas isso é estritamente para human compreensão. Como geralmente você precisa de execute de um arquivo para ser associado ao programa definido para este tipo MIME e, geralmente, você define a permissão como não executável, isso não é um problema.

    
por 17.09.2011 / 23:46
4

Geralmente sim, você pode usar qualquer extensão que quiser, mas também não é necessário, por exemplo, registrar extensões de arquivos em algum corpo internacional ou algo assim.

No entanto, alguns programas esperam que seus arquivos tenham uma certa extensão - isso geralmente é mais importante em um ambiente gráfico - ou seja, caixas de diálogo Abrir Arquivo filtram seu conteúdo por extensão ou a caixa de diálogo Salvar Arquivo pode adivinhar em qual formato qual usuário da extensão forneceu.

No Windows, o uso de extensões arbitrárias pode ser um pouco mais problemático devido à maneira como as caixas de diálogo Abrir e Salvar funcionam, mas você ainda pode ter um arquivo de texto com a extensão .kjhkhkj

Com relação a "como o sistema decide qual programa usar": você diz. No terminal, você chama o programa e fornece um nome de arquivo:

gedit message.kjhkjhkj

e ele será aberto no gedit

No Nautilus, você clica com o botão direito no arquivo e escolhe "Abrir com ...", onde você pode especificar um programa. Também é possível tornar esta associação permanente, então .kjhkhkj arquivos são sempre abertos com o gedit.

No Windows, o procedimento é semelhante, embora o Windows tenda a confiar mais em extensões de arquivo conhecidas (ou seja, os arquivos de vídeo terão miniaturas de visualização no Ubuntu independentemente de sua extensão; o Windows precisa delas com extensões conhecidas .avi, .mov etc)

    
por 17.09.2011 / 23:45
3

Sim e não. No windows, a extensão de tipo de arquivo é usada para determinar o que abre um arquivo. Se você renomear todos os seus mp3s .tomato, o Windows não saberia o que fazer com ele, a menos que você tenha atribuído um programa que possa abrir mp3s como o padrão para abrir o .tomato ou você tenha aberto o arquivo especificamente com ele.

* nixes usam números mágicos para o mesmo propósito, então eles não se importam com a extensão

    
por 18.09.2011 / 05:24
0

Além disso, alguns aplicativos, como o grep, que manipulam arquivos de maneira diferente tentam adivinhar o conteúdo, porque eles podem lidar de maneira diferente com base nisso. Minha amostra de grep ignora a extensão (eu acho que um texto simples .log é binário), mas alguns aplicativos (por exemplo, Nautilus) preferirão usar uma extensão para o palpite.

    
por 18.09.2011 / 04:43