Como verificar se meu software é de 32 ou 64 bits

30

Quero verificar se meu software é de 64 bits ou 32 bits (não o SO). Este software é um arquivo executável e, quando o verifico, nenhuma informação é fornecida se for de 64 ou 32 bits.

Como verifico se meu software é de 64 ou 32 bits?

Levan
fonte

Respostas:

39

Você pode usar o filecomando para verificar qual formato tem esse executável. Por exemplo:

file /usr/bin/gedit
/usr/bin/gedit: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.24, BuildID[sha1]=0x5a388215eb6f60b420fc3b6d68ec52d563071f84, stripped
Radu Rădeanu
fonte
4

Este comando simples mostra se o arquivo executável é de 32 bits (i386) ou 64 bits (amd64).

Sintaxe:

apt-cache show $(dpkg -S /path/to/the/file | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -

Exemplo:

$ apt-cache show $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -
amd64

Explicação:

dpkg -SO comando pega o pacote no qual o arquivo realmente pertence. apt-cache show packageO comando mostra os detalhes sobre o pacote. A partir desses detalhes, o awk pega apenas a parte Architecture e a redireciona para stdout.

OU

Você pode tentar este comando também,

$ dpkg -l $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/ii/ {print $4}'
amd64
Avinash Raj
fonte
1
cut -d: -f1seria mais curto aqui e observe que isso funciona apenas para pacotes instalados, não para um arquivo aleatório na sua pasta pessoal. Talvez xargs -rseja mais apropriado caso o dpkg -Scomando retorne vazio.
Lekensteyn
Isso só funciona se o software veio do apt / dpkg, enquanto a outra resposta sempre funciona, não importa de onde veio.
Joseph Sible-Reinstate Monica