กำหนดประเภทไฟล์โดยใช้คำสั่ง Linux 'ไฟล์'
คนส่วนใหญ่มองที่ นามสกุลของไฟล์ แล้วเดาประเภทของไฟล์จากนามสกุลนั้น ตัวอย่างเช่น เมื่อคุณเห็นไฟล์ที่มีนามสกุล gif, jpg, bmp หรือ png คุณนึกถึง an ไฟล์ภาพและเมื่อคุณเห็นไฟล์ที่มีนามสกุลเป็น zip แสดงว่าไฟล์นั้นถูกบีบอัดโดยใช้ a ยูทิลิตี้บีบอัดไฟล์ zip.
ไฟล์สามารถใช้นามสกุลเดียวได้ แต่จะแตกต่างกันโดยสิ้นเชิง Linux ไม่ใช้นามสกุลไฟล์ แต่ประเภทของไฟล์เป็นส่วนหนึ่งของชื่อไฟล์ หากต้องการค้นหาประเภทไฟล์ที่แท้จริงให้ใช้ ไฟล์ สั่งการ.

คำสั่ง 'ไฟล์' ทำงานอย่างไร
คำสั่ง file รันการทดสอบสามชุดกับไฟล์:
- การทดสอบระบบไฟล์
- การทดสอบเวทย์มนตร์
- แบบทดสอบภาษา
การทดสอบชุดแรกเพื่อส่งคืนการตอบกลับที่ถูกต้องจะแจ้งประเภทไฟล์ที่จะพิมพ์
การทดสอบระบบไฟล์จะตรวจสอบการส่งคืนจากการเรียกระบบสถิติ โปรแกรมจะตรวจสอบดูว่าไฟล์นั้นว่างหรือไม่และเป็นไฟล์พิเศษหรือไม่ หากพบประเภทไฟล์ในไฟล์ส่วนหัวของระบบ ระบบจะส่งคืนประเภทไฟล์ที่ถูกต้อง
การทดสอบเวทย์มนตร์จะตรวจสอบเนื้อหาของไฟล์และเฉพาะบางไบต์ที่จุดเริ่มต้นซึ่งช่วยในการกำหนดประเภทไฟล์ ไฟล์ต่างๆ ถูกใช้เพื่อช่วยจับคู่ไฟล์กับประเภทไฟล์ และจัดเก็บไว้ใน:
- /etc/magic
- /usr/share/misc/magic.mgc
- /usr/share/misc/magic
แทนที่ไฟล์เหล่านี้โดยวางไฟล์ในโฟลเดอร์เริ่มต้นของคุณที่ชื่อว่า $HOME/.magic.mgc หรือ $HOME/.magic.
การทดสอบขั้นสุดท้ายคือการทดสอบภาษา ไฟล์จะถูกตรวจสอบเพื่อดูว่าเป็นไฟล์ข้อความหรือไม่ โดยการทดสอบสองสามไบต์แรกของไฟล์ การทดสอบจะอนุมานว่าไฟล์นั้นเป็น ASCII, UTF-8, UTF-16 หรือรูปแบบอื่นที่ระบุไฟล์นั้นเป็นไฟล์ข้อความ เมื่อชุดอักขระถูกอนุมาน ไฟล์จะถูกทดสอบกับภาษาต่างๆ
วิธีใช้คำสั่ง 'file'
NS ไฟล์ คำสั่งใช้รูปแบบต่อไปนี้:
ชื่อไฟล์.
เช่น ตรวจสอบประเภทของชื่อไฟล์ touch.svg, รันคำสั่งต่อไปนี้:
ไฟล์ touch.svg
ผลลัพธ์เป็นดังนี้:
- touch.svg: ภาพกราฟิกแบบเวกเตอร์ที่ปรับขนาดได้ SVG
ไฟล์ประเภทต่างๆ ให้ผลลัพธ์ที่แตกต่างกัน เช่น
- ประเภทไฟล์ ODS: สเปรดชีต OpenDocument
- ประเภทไฟล์ PDF: เอกสาร PDF เวอร์ชัน 1.4
- ประเภทไฟล์ CSV: ข้อความ ASCII พร้อมบรรทัดยาวมาก พร้อมตัวบ่งชี้บรรทัด CRLF
การจัดการหลายไฟล์
โดยค่าเริ่มต้น คำสั่ง file จะทำงานกับไฟล์เดียว อย่างไรก็ตาม คุณสามารถระบุชื่อไฟล์ที่มีรายการไฟล์ที่จะประมวลผลโดย ไฟล์ สั่งการ.
เช่น เปิดไฟล์ชื่อ ไฟล์ทดสอบ ใช้ นาโนเอดิเตอร์ และเพิ่มบรรทัดเหล่านี้เข้าไป:
- /etc/passwd
- /etc/pam.conf
- /etc/opt
บันทึกไฟล์และรันคำสั่งไฟล์ต่อไปนี้:
file -f ไฟล์ทดสอบ.
ผลลัพธ์จะเป็นดังนี้:
- /etc/passwd: ข้อความ ASCII
- /etc/pam.conf: ข้อความ ASCII
- /etc/opt: ไดเร็กทอรี
อีกวิธีหนึ่งคือการเรียกใช้ ไฟล์ สั่งครั้งเดียว แต่ระบุหลายเป้าหมาย ตัวอย่างเช่น:
ไฟล์ /etc/passwd /etc/pam.conf /etc/opt
ผลลัพธ์จะเป็นดังนี้:
- /etc/passwd: ข้อความ ASCII
- /etc/pam.conf: ข้อความ ASCII
- /etc/opt: ไดเร็กทอรี
ไวด์การ์ดมาตรฐานก็ใช้งานได้เช่นกัน ตัวอย่างเช่น ในการทดสอบไฟล์ทั้งหมดในไดเร็กทอรีการทำงานปัจจุบัน ให้ใช้:
ไฟล์ *
ในการทดสอบไดเร็กทอรีที่ขึ้นต้นด้วยตัวอักษร D (ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่) ให้ลองทำดังนี้:
ไฟล์ D*
ผลลัพธ์อาจเป็นเดสก์ท็อป เอกสาร และดาวน์โหลด เป็นต้น
ไฟล์บีบอัด
เมื่อคุณเรียกใช้ ไฟล์ คำสั่งกับไฟล์บีบอัดที่คุณเห็นผลลัพธ์ดังนี้:
- file.zip: ข้อมูลไฟล์ ZIP อย่างน้อย V2.0 เพื่อแตกไฟล์
แม้ว่าผลลัพธ์นี้จะบอกคุณว่าไฟล์นั้นเป็นไฟล์เก็บถาวร แต่คุณไม่รู้เนื้อหาของไฟล์ ดูในไฟล์ zip เพื่อดูประเภทไฟล์ของไฟล์ภายในไฟล์บีบอัด คำสั่งต่อไปนี้รันคำสั่ง file กับไฟล์ภายในไฟล์ ZIP:
ไฟล์ -z ชื่อไฟล์.
ผลลัพธ์จะแสดงประเภทไฟล์ของไฟล์ในไฟล์เก็บถาวร