Não sei qual é a extensão exata do arquivo executável. É .deb
ou .tar.gz
?
executable
user54905
fonte
fonte
.exe
extensões que não são necessárias para executáveis nativos. O primeiro explica o conteúdo de/dev
; o último é por causa das permissões de execução e da dependência de examinar o interior de um arquivo para determinar que tipo de arquivo ele é.Respostas:
Não há extensão de arquivo padrão como um arquivo ".exe" no Windows.
No Linux, quase qualquer arquivo pode ser executável. O final do arquivo apenas descreve (mas não necessariamente) o que ou como um arquivo é "executado".
Por exemplo, um script shell termina com .sh e é "executado" através do shell bash.
Na sua pergunta, você solicita .deb e .tar.gz Bem, o arquivo .deb instala o software no seu sistema (tenha cuidado!) E o arquivo .tar.gz é um arquivo compactado como um .zip que você pode conhecer Janelas.
fonte
.deb
arquivos NÃO costumam ser executáveis: eles não são scripts ELF nem "she-bang" e é improvável que sejam registrados no binfmt. Mesmo com permissões executáveis, o kernel não saberia o que fazer com elas. O fato de o seu explorador de arquivos poder ser registrado para abrir arquivos com um determinado aplicativo com base na extensão não tem nada a ver com o fato de serem executáveis (em termos de permissão de arquivo ou de execução no formato binário do kernel)..deb
é mais um.msi
arquivo que um.exe
arquivo.Eu resumiria o sistema da seguinte maneira:
Qualquer arquivo que comece com
#!
(chamado shebang ou hashbang) na primeira linha é apenas um script. O caminho após o shebang é um caminho para o programa (executável) que precisa analisar o script, supondo que a permissão de execução tenha sido definida no arquivochmod a+x filename
.Portanto, responda à sua pergunta original, não há extensão ou, raramente, é
.elf
ou.bin
.Isso foi criado no Community Wiki, para que qualquer pessoa possa adicionar uma entrada.
fonte
O conceito de um executável é diferente no unix / linux e no Windows.
janelas
Qualquer coisa que termine
.exe
ou.com
se torne um arquivo executável.Linux / Unix
Cada arquivo possui um bit executável, portanto, qualquer arquivo pode ser executado, diferente do Windows. Para verificar se um arquivo é executável, você pode verificar suas propriedades (guia Permissões) ou até vê-las marcadas no terminal (todas elas são marcadas com um *).
Até arquivos de texto (como scripts de shell) podem ter seus bits executáveis definidos e serem executados como um.
fonte
#!/bin/bash
por exemplo) no início dos conjuntos de arquivos que programa executa o arquivo.man magic
, ELFman elf
, e linha de hash-bangman execve
)Para descobrir o que um sistema operacional UNIX pensa que é o tipo de arquivo específico, use o comando file:
No exemplo acima, eu dou o caminho para o programa 'ls', você substituiria pelo caminho do seu arquivo.
Um arquivo de script seria semelhante a:
Um arquivo de texto aleatório:
Um arquivo morto:
É inteligente o suficiente para identificar corretamente um programa do Windows, se houver um na sua caixa UNIX:
E quando não consegue descobrir o que é um arquivo (mas é capaz de abri-lo), chama-o de dados:
fonte
A execução de arquivos no Linux não está relacionada ao nome ou extensão do arquivo. Qualquer arquivo pode ser executado potencialmente, desde que seja tratado pelo
binfmt
mecanismo do kernel (e que suas permissões de executável sejam definidas).O formato mais comum para executável é o ELF , embora alguns kernels possam ser compilados para suportar o
a.out
formato antigo . (Para detalhes técnicos completos,binfmt_elf.c
é onde procurar.)Outro mecanismo comum é o sistema "Shebang" , manipulado por
binfmt_script
, que procura#!/path/to/interpreter
no início do arquivo.binfmt_misc
permite o registro de outros manipuladores, conforme documentado aqui .Se você gosta de fazer um pouco de programação do kernel, pode até escrever sua própria .
Embora não esteja diretamente relacionado, o
file
comando deve informar se um arquivo é um executável ELF ou outra coisa.A convenção de nomenclatura não tem nada a ver com o status executável de um arquivo (exceto quando usado para
binfmt_misc
registro). São apenas convenções. Normalmente, um.exe
arquivo encontrado no Linux pode ser um aplicativo mono , recebendo a.exe
extensão como uma convenção vinda do mundo Windows / .Net.O outro aspecto que pode acontecer quando você deseja "executar" um arquivo é ter a ferramenta exploradora de arquivos que você usa extensões de registro para poder iniciar um programa que abrirá esses arquivos. É o que aconteceria se você clicar duas vezes em um
.txt
,.tar.gz
ou.deb
, por exemplo: os arquivos não são executáveis nem executados, mas o que você usa para clicar duas vezes escolhe qual executável iniciar para abrir esses arquivos.fonte
No Windows, um arquivo .exe é um arquivo de computador que termina com a extensão ".exe", conhecida como arquivo executável. Quando alguém clica em um arquivo exe, uma rotina interna executa automaticamente o código que pode colocar várias funções em movimento. Arquivos exe são comumente usados para instalar arquivos no sistema operacional Windows.
Além disso, você tem arquivos .tar, conhecidos como arquivos compactados. As versões do Linux, como o Ubuntu, usam recursos de destaque em várias distribuições de software, com a maioria dos códigos-fonte de software disponibilizados no formato tar.gz. gz é uma forma do conhecido formato .tar, usado para arquivamento.
No Ubuntu, por outro lado, o formato de arquivo .deb é o que se comporta mais como o arquivo .exe no Windows. Quando você o abre, o centro de software manipula seu código e instala o programa que ele contém, como um arquivo executável.
Embora você ainda possa instalar software e pacotes a partir do formato de origem (tar.gz), o formato mais adequado para a instalação de software é o .deb one.Tome como exemplo o Ubuntu Software Center; todos os aplicativos que ele contém são de fato arquivos .deb. Em geral, no linux, quase todos os formatos de arquivo (incluindo .deb e tar.gz, bem como os conhecidos arquivos bash .sh) podem se comportar como um arquivo executável. pode instalar pacotes ou software com isso.
fonte
Não há equivalente à extensão do arquivo exe no Windows para indicar que um arquivo é executável. Em vez disso, os arquivos executáveis podem ter qualquer extensão e, normalmente, não têm nenhuma extensão .
Linux / Unix usa permissões de arquivo para indicar se um arquivo pode ser executado. Especificamente, há uma permissão de execução de arquivo que informa ao sistema que esse arquivo pode ser executado. No entanto, a ausência dessa permissão não indica que o arquivo não é um executável; apenas que o usuário relevante não está autorizado a tentar executá-lo. Da mesma forma, a presença dessa permissão nem sempre indica que o arquivo é um executável válido.
O Linux / Unix possui um formato de arquivo executável binário chamado ELF, que é equivalente aos formatos executáveis binários PE (Windows) ou MZ / NE (DOS), que geralmente possuem a extensão .exe
No entanto, outros tipos de arquivos podem ser executáveis, dependendo do shell. Normalmente, se você tentar executar um arquivo que o sistema não reconhece como executável binário (por exemplo, formato ELF), ele será interpretado pelo interpretador de shell atual. Isso tem o mesmo efeito que os arquivos em lote no Windows ou DOS, exceto que, novamente, não é a extensão que identifica seu tipo ou como executá-lo.
Os arquivos do shell podem, opcionalmente, começar com um hashbang (os dois primeiros caracteres do arquivo são
#!
seguidos por um caminho para um intérprete); nesse caso, em vez de interpretar o restante do arquivo com o intérprete do shell atual, ele pode iniciar um shell ou intérprete alternativo para execute o arquivo Portanto, você pode ter um script em qualquer linguagem interpretada e ainda assim executá-lo com o intérprete correto ao tentar executar o script.fonte
Arquivos EXE e DLL são arquivos executáveis portáteis. Estes são baseados nos arquivos unix PE / COFF.
Leia http://en.wikipedia.org/wiki/Portable_Executable para mais informações.
No Ubuntu, você não tem uma extensão específica para um arquivo executável. Geralmente, esses arquivos são nomeados de acordo com o aplicativo e também estão relacionados.
O fator importante é que esses arquivos tenham o conjunto de bits executável. Se você tiver um terminal colorido, notará que essas cores são diferentes quando listadas usando
ls
.No sistema de arquivos unix, os arquivos executáveis binários geralmente são armazenados no próprio local.
enquanto outros recursos de aplicativos podem ser armazenados em / usr / lib / ou / usr / share /
Um arquivo deb corresponde mais corretamente a um arquivo msi no Windows (ou seja, um instalador de pacote).
Geralmente, os arquivos tar.gz ou bz2 contêm código fonte a partir do qual um aplicativo pode ser construído
fonte
O Ubuntu igual ao arquivo .exe / .com é um arquivo sem extensão, geralmente algumas extensões como .bin, .run etc. são adicionadas a ele por questão de conveniência
Existem várias alternativas para o arquivo .bat (quase todos os arquivos), a mais popular é .sh
.deb é apenas um arquivo binário de arquivamento (semelhante ao .msi no Windows) com debian standerds
.tar.gz é apenas um formato de arquivamento comum usado no ubuntu
fonte
Qualquer nome de arquivo pode ser definido como executável, independentemente da extensão, mas o arquivo precisa ter a permissão apropriada definida. A permissão pode ser dada clicando com o botão direito do mouse no arquivo do Nautilus, clicando em Propriedades e marcando a caixa de seleção "Permitir a execução de arquivo como programa":
fonte
.deb Pacote Debian para Linux e arquivo TAR compactado com o algoritmo de compactação GNU zip (gzip) padrão; contém um ou mais arquivos compactados; comumente usado em sistemas operacionais Unix para empacotar arquivos, programas e instaladores.
NOTA : Os arquivos TAR.GZ devem primeiro ser descompactados e depois expandidos usando um utilitário TAR. Eles incluem os tipos de arquivo .TAR e .GZ.
fonte