Як перевірити, чи є моє програмне забезпечення 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 захоплює лише частину архітектури та перенаправляє її до stdout.

АБО

Ви також можете спробувати цю команду,

$ 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, тоді як інша відповідь завжди працює незалежно від того, звідки вона прийшла.
Джозеф Сибл-Відновити Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.