Как проверить, является ли мое программное обеспечение 32-битным или 64-битным

30

Я хочу проверить, является ли мое программное обеспечение 64-битным или 32-битным (не ОС). Это программное обеспечение является исполняемым файлом, и когда я проверяю его, информация не указывается, является ли она 64-битной или 32-битной.

Как проверить, является ли мое программное обеспечение 64-битным или 32-битным?

Леван
источник

Ответы:

39

Вы можете использовать fileкоманду, чтобы проверить, какой формат имеет этот исполняемый файл. Например:

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
Раду Рэдяну
источник
4

Эта простая команда покажет вам, является ли исполняемый файл 32-битным (i386) или 64-битным (amd64).

Синтаксис:

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

Пример:

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

Объяснение:

dpkg -SКоманда захватывает пакет, в котором файл фактически принадлежит. apt-cache show packageКоманда покажет подробности о пакете. Из этих подробностей awk берет только часть Архитектура и перенаправляет ее на стандартный вывод.

ИЛИ

Вы можете попробовать эту команду также,

$ dpkg -l $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/ii/ {print $4}'
amd64
Авинаш Радж
источник
1
cut -d: -f1будет короче здесь, и обратите внимание, что это работает только для установленных пакетов, а не какой-то случайный файл в вашей домашней папке. Возможно xargs -r, более уместно, если dpkg -Sкоманда возвращает пустое значение.
Лекенштейн
Это работает, только если программное обеспечение пришло из apt / dpkg, тогда как другой ответ всегда работает независимо от того, откуда он пришел.
Джозеф Сибл-Восстановить Монику