Jak sprawdzić, czy moje oprogramowanie jest 32-bitowe czy 64-bitowe


30

Chcę sprawdzić, czy moje oprogramowanie jest 64-bitowe czy 32-bitowe (nie system operacyjny). To oprogramowanie jest plikiem wykonywalnym , a kiedy go sprawdzam, nie podaje żadnych informacji, czy jest to wersja 64-bitowa czy 32-bitowa.

Jak sprawdzić, czy moje oprogramowanie jest 64-bitowe czy 32-bitowe?

Odpowiedzi:


39

Możesz użyć filepolecenia, aby sprawdzić, jaki format ma ten plik wykonywalny. Na przykład:

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

To proste polecenie pokaże, czy plik wykonywalny jest 32-bitowy (i386) czy 64-bitowy (amd64).

Składnia:

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

Przykład:

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

Wyjaśnienie:

dpkg -S polecenie pobiera pakiet, do którego należy plik.apt-cache show packagepolecenie wyświetli szczegółowe informacje o pakiecie. Z tych szczegółów awk pobiera tylko część architektury i przekierowuje ją na standardowe wyjście.

LUB

Możesz także wypróbować to polecenie,

$ dpkg -l $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/ii/ {print $4}'
amd64

1
cut -d: -f1byłoby tutaj krótsze i należy pamiętać, że działa to tylko w przypadku zainstalowanych pakietów, a nie niektórych losowych plików w folderze domowym. Być może xargs -rjest to bardziej odpowiednie w przypadku, gdy dpkg -Spolecenie zwraca puste.
Lekensteyn

Działa to tylko wtedy, gdy oprogramowanie pochodzi z apt / dpkg, a druga odpowiedź zawsze działa bez względu na to, skąd pochodzi.
Joseph Sible-Reinstate Monica
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.