Câu trả lời:
Bạn có thể sử dụng file
lệnh để kiểm tra định dạng nào có thể thực thi được. Ví dụ:
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
Lệnh đơn giản này sẽ cho bạn biết tập tin thực thi là 32 bit (i386) hay 64 bit (amd64).
Cú pháp:
apt-cache show $(dpkg -S /path/to/the/file | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -
Thí dụ:
$ apt-cache show $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/Architecture:/ {print $2}' -
amd64
Giải trình:
dpkg -S
lệnh lấy gói trong đó tập tin thực sự thuộc về.apt-cache show package
lệnh sẽ hiển thị các chi tiết về gói. Từ đó chi tiết, awk chỉ lấy phần Kiến trúc và chuyển hướng nó đến thiết bị xuất chuẩn.
HOẶC LÀ
Bạn cũng có thể thử lệnh này,
$ dpkg -l $(dpkg -S /usr/bin/gedit | awk -F ':' '{print $1 }') | awk '/ii/ {print $4}'
amd64
cut -d: -f1
sẽ ngắn hơn ở đây và lưu ý rằng điều này chỉ hoạt động đối với các gói đã cài đặt, không phải một số tệp ngẫu nhiên trong thư mục nhà của bạn. Có lẽxargs -r
là thích hợp hơn trong trường hợpdpkg -S
lệnh trả về sản phẩm nào.