Qual é o equivalente de um "arquivo exe"?

38

Não sei qual é a extensão exata do arquivo executável. É .deb ou .tar.gz ?

    
por user54905 26.06.2012 / 21:14

11 respostas

37

Não existe uma extensão de arquivo padrão como um arquivo ".exe" no Windows.

No Linux, praticamente 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 de shell termina com .sh e é "executado" por meio do shell bash.

Na sua pergunta você pergunta por .deb e .tar.gz Bem, o arquivo .deb instala software no seu sistema (Por favor, tenha cuidado!) E o arquivo .tar.gz é um arquivo compactado como um .zip que você pode conhecer do Windows.

    
por rechengehirn 26.06.2012 / 21:21
63

Eu resumiria o sistema da seguinte maneira:

Linux extension    |Windows Equivalent    |Short description
------------------------------------------------------------
.so, .o            | .dll                 | Object that can be loaded at runtime (Similar to DLL)
.a                 | .lib                 | Static library
[none], .elf(rare) | .exe, .com(rare)     | Linux executables
    .bin(rare)     |                      |
.sh                | .bat                 | Shell script
.exe               | .exe                 | Mono application, Wine application
.deb               | .msi                 | Installer package for Debian/Ubuntu releases
                   |                      |     (Though .deb is much more powerful with 
                   |                      |     native support for dependencies and repos). Note that .deb is actually a .ar archive with a special control file, a special file order, and a different extension.
.rpm               | .msi                 | Installer package for RedHat/CentOS releases.
.tar.gz, .tar, .gz | .zip                 | Compressed files that can contain a program or any other data, like images, documents, etc
.ko                | .sys                 | Drivers and kernel modules are loaded into the Linux kernel and have more hardware access than other programs.
.sh, .php, .py, etc| .bat, .vbs           | Linux is capable of running any file that it has an interpreter for. 
                   |                      |   A line at the top of the file called the shebang specifies what interpreter to run the file with. 
                   |                      |   Windows only really runs .bat files in this way.

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, assumindo que a permissão de execução foi definida no arquivo com chmod a+x filename .

Portanto, responda à sua pergunta original, não há extensão ou, raramente, ela é .elf ou .bin .

Isto foi feito para o Wiki da comunidade, para que qualquer pessoa possa adicionar uma entrada.

    
por hexafraction 26.07.2017 / 15:00
24

O conceito de um executável é diferente em unix / linux que o Windows.

Windows

Tudo o que termina em .exe ou .com se torna um arquivo executável.

Linux / Unix

Cada arquivo tem um bit executável, então qualquer arquivo pode ser executado, ao contrário do Windows. Para ver se um arquivo é executável, você pode verificar suas propriedades (guia Permissões) ou até mesmo vê-las marcadas no terminal (todas elas estão marcadas com um *).

Mesmo arquivos de texto (como scripts de shell) podem ter seus bits executáveis definidos e serem executados como um só.

    
por Nemo 26.06.2012 / 21:21
15

Para descobrir o que um sistema operacional UNIX acha que é o tipo de arquivo em particular, use o comando file:

$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1, for OpenBSD, statically linked, stripped

No exemplo acima, eu dou o caminho para o programa 'ls', você substituiria pelo caminho do seu arquivo.

Um arquivo de script seria parecido com:

$ file script.sh
script.sh: Bourne-Again shell script text

Um arquivo de texto aleatório:

$ file textfile
textfile: ASCII text

Um arquivo morto:

$ file rsync-3.0.6.tar.gz
rsync-3.0.6.tar.gz: gzip compressed data, from Unix

É inteligente o suficiente para identificar corretamente um programa do Windows, caso você tenha um em sua caixa UNIX:

$ file FMZsetup.exe
FMZsetup.exe: MS-DOS executable (EXE), OS/2 or Windows

E quando não consegue descobrir o que é um arquivo (mas é capaz de abri-lo), ele chama dados:

$ file myrandom
myrandom: data
    
por Don Simon 26.06.2012 / 21:36
9

A execução de arquivos no Linux não está relacionada ao nome ou à extensão do arquivo. Qualquer arquivo pode potencialmente ser executado, desde que seja manipulado pelo mecanismo binfmt do kernel (e que suas permissões executáveis estejam definidas).

O formato mais comum para executável é ELF , embora alguns kernels possam ser compilados para suporte do antigo a.out formato. (Para detalhes técnicos completos, binfmt_elf.c é onde procurar.)

Outro mecanismo comum é o sistema "Shebang" , gerenciado 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é mesmo escrever o seu próprio .

Embora não esteja diretamente relacionado, o comando file deve informar se um arquivo é um executável ELF ou qualquer 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 o registro binfmt_misc ). Eles são apenas convenções. Normalmente, um arquivo .exe encontrado no Linux pode ser um aplicativo mono , obtendo a extensão .exe como convenção vinda do mundo do Windows / .Net.

O outro aspecto que pode acontecer quando você quer "executar" um arquivo é ter a ferramenta explorador de arquivos que você usa para registrar extensões para poder iniciar um programa que abrirá esses arquivos. Isso é o que aconteceria se você clicasse duas vezes em .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 quais executáveis iniciar para abrir esses arquivos.

    
por Bruno 26.06.2012 / 22:52
3

No Windows, um arquivo .exe é um arquivo de computador que termina com a extensão ".exe", comumente 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, comumente conhecidos como arquivos compactados. Versões em Linux, como o uso do Ubuntu, destacam-se em várias distribuições de software, com a maioria dos códigos-fonte disponibilizados no formato tar.gz. que tar.gz é uma forma do conhecido formato .tar, usado para arquivamento.

No Ubuntu, por outro lado, o formato de arquivo .deb é aquele que se comporta mais como o arquivo .exe no Windows. Quando você o abre, o software lida com o código e instala o programa que ele contém, como um executável. arquivo.

Embora você ainda possa instalar softwares e pacotes a partir do formato fonte (tar.gz), o formato mais adequado para a instalação de software é o .deb. 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 arquivos (inclusive .deb e tar.gz, bem como os bem conhecidos arquivos bash .sh) podem se comportar como um arquivo executável para que você pode instalar pacotes ou software com isso.

    
por dlin 26.06.2012 / 21:22
2

Não há equivalente à extensão de 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, existe uma permissão de arquivo executar que diz ao sistema que este arquivo é permitido para 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 é permitido para 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 tem 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. Isto cumpre o mesmo efeito que arquivos batch no Windows ou no DOS, exceto que, novamente, não é a extensão que identifica seu tipo ou como executá-lo.

Os arquivos shell podem começar opcionalmente com um hashbang (os primeiros dois caracteres no arquivo são #! seguidos por um caminho para um intérprete). Nesse caso, em vez de interpretar o restante do arquivo com o interpretador de shell atual, ele pode ser iniciado um shell ou interpretador alternativo para executar o arquivo. Assim, você pode ter um script em qualquer idioma interpretado e ainda executá-lo com o intérprete correto ao tentar executar o script.

    
por thomasrutter 25.06.2015 / 17:40
1

Arquivos EXE e DLL são arquivos executáveis portáveis. Estes são baseados nos arquivos unix do PE / COFF.

Leia o link para obter mais informações.

No Ubuntu, você não tem uma extensão específica para um arquivo executável. Estes são geralmente arquivos que são nomeados após o aplicativo que eles se relacionam também.

O fator importante é que esses arquivos têm o bit executável definido. Se você tiver um terminal de cores, perceberá que elas são de cor diferente quando listadas usando ls .

No sistema de arquivos unix, os arquivos executáveis binários geralmente são armazenados em seu próprio local.

  1. / bin (binários principais)
  2. / sbin (binários do sistema)
  3. / usr / bin (binários do aplicativo)

considerando que outros recursos de aplicativos podem ser armazenados em / usr / lib / ou / usr / share /

Um arquivo deb é mais corretamente correspondido a um arquivo msi no Windows (ou seja, um instalador de pacotes).

Geralmente os arquivos tar.gz ou bz2 contêm o código fonte a partir do qual um aplicativo pode ser construído

    
por Merlin 26.06.2012 / 21:36
0

O Ubuntu equivalente ao arquivo .exe / .com é um arquivo sem extensão, geralmente algumas extensões como .bin, .run, etc. são adicionadas a ele por conveniência.

existem várias alternativas para o arquivo .bat (quase todos os arquivos), o mais popular é o .sh

.deb é apenas um arquivo de arquivos binários (similar ao .msi no windows) com debian standerds

.tar.gz é apenas um formato de arquivamento comum usado no ubuntu

    
por Tachyons 16.08.2012 / 14:24
0

Qualquer nome de arquivo pode ser definido como executável, independentemente da extensão, mas o arquivo precisa ter o conjunto de permissões apropriado. 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 execução do arquivo como programa":

    
por Terrarian 24.04.2015 / 02:27
-3

.deb Pacote Debian para Linux e arquivo TAR compactado com o algoritmo padrão de compactação GNU zip (gzip); contém um ou mais arquivos compactados; comumente usado em sistemas operacionais Unix para empacotar arquivos, programas e instaladores.

OBSERVAÇÃO : os arquivos TAR.GZ devem primeiro ser descompactados e expandidos usando um utilitário TAR. Eles incluem os tipos de arquivo .TAR e .GZ.

    
por Shanmugasundharam selvadurai 25.06.2015 / 16:49

Tags