Risposte:
Puoi usare il file
comando per verificare quale formato ha quell'eseguibile. Per esempio:
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
Questo semplice comando ti mostrerà se il file eseguibile è a 32 bit (i386) o 64 bit (amd64).
Sintassi:
apt-cache show $(dpkg -S /path/to/the/file | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -
Esempio:
$ apt-cache show $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -
amd64
Spiegazione:
dpkg -S
Il comando prende il pacchetto a cui appartiene effettivamente il file. apt-cache show package
comando mostrerà i dettagli sul pacchetto. Da questi dettagli, awk prende solo la parte Architecture e la reindirizza su stdout.
O
Puoi provare anche questo comando,
$ dpkg -l $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/ii/ {print $4}'
amd64
cut -d: -f1
sarebbe più breve qui, e nota che questo funziona solo per i pacchetti installati, non per alcuni file casuali nella tua cartella home. Forsexargs -r
è più appropriato nel caso in cui ildpkg -S
comando ritorni vuoto.