ฉันต้องการตรวจสอบว่าซอฟต์แวร์ของฉันเป็น 64 บิตหรือ 32 บิต (ไม่ใช่ระบบปฏิบัติการ) ซอฟต์แวร์นี้เป็นไฟล์ที่ปฏิบัติการได้และเมื่อฉันตรวจสอบจะไม่มีการให้ข้อมูลหากเป็น 64 บิตหรือ 32 บิต
ฉันจะตรวจสอบว่าซอฟต์แวร์ของฉันเป็นแบบ 64 บิตหรือ 32 บิตได้อย่างไร
ฉันต้องการตรวจสอบว่าซอฟต์แวร์ของฉันเป็น 64 บิตหรือ 32 บิต (ไม่ใช่ระบบปฏิบัติการ) ซอฟต์แวร์นี้เป็นไฟล์ที่ปฏิบัติการได้และเมื่อฉันตรวจสอบจะไม่มีการให้ข้อมูลหากเป็น 64 บิตหรือ 32 บิต
ฉันจะตรวจสอบว่าซอฟต์แวร์ของฉันเป็นแบบ 64 บิตหรือ 32 บิตได้อย่างไร
คำตอบ:
คุณสามารถใช้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
คำสั่งง่ายๆนี้จะแสดงให้คุณเห็นว่าไฟล์ที่เรียกใช้งานได้คือ 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
cut -d: -f1
จะสั้นกว่าที่นี่และโปรดทราบว่าจะใช้งานได้เฉพาะกับแพ็คเกจที่ติดตั้งไม่ใช่ไฟล์สุ่มในโฟลเดอร์บ้านของคุณ อาจxargs -r
เหมาะสมกว่าในกรณีที่dpkg -S
คำสั่งส่งคืนว่างเปล่า