Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

ตัวอย่างการใช้คำสั่ง gunzip สำหรับการแตกไฟล์ .gz

หากคุณพบไฟล์ที่มีนามสกุล .gz ในโฟลเดอร์ต่างๆ แสดงว่าไฟล์เหล่านั้นถูกบีบอัดด้วยคำสั่ง gzip ซึ่งใช้อัลกอริทึมการบีบอัด Lempel-Ziv (LZ77) เพื่อลดขนาดไฟล์ เช่น เอกสาร รูปภาพ หรือไฟล์เสียง หลังจากบีบอัดไฟล์ด้วย gzip แล้ว คุณจะต้องแตกไฟล์ (decompress) ก่อนจึงจะใช้งานได้ บทความนี้จะแนะนำวิธีการแตกไฟล์ที่ถูกบีบอัดด้วย gzip อย่างละเอียด

แตกไฟล์ด้วยคำสั่ง gzip

คำสั่ง gzip เองก็มีตัวเลือกสำหรับแตกไฟล์ที่มีนามสกุล .gz ได้

หากต้องการแตกไฟล์ ให้ใช้สวิตช์ -d ดังนี้:

gzip -d myfilename.gz

ไฟล์จะถูกแตกออก และนามสกุล .gz จะถูกลบออกไป

แตกไฟล์ด้วยคำสั่ง gunzip (แนะนำ)

แม้คำสั่ง gzip จะใช้ได้ แต่คำสั่ง gunzip จดจำง่ายกว่า และถูกออกแบบมาสำหรับการแตกไฟล์โดยเฉพาะ ตัวอย่างการใช้งาน:

gunzip myfilename.gz

บังคับให้แตกไฟล์ด้วยตัวเลือก -f

บางครั้ง gunzip อาจปฏิเสธการแตกไฟล์ 原因หลักคือ ชื่อไฟล์หลังแตกซ้ำกับไฟล์ที่มีอยู่แล้วในโฟลเดอร์เดียวกัน

ตัวอย่าง: คุณมีไฟล์ document1.doc.gz และต้องการแตก แต่ในโฟลเดอร์เดิมก็มี document1.doc อยู่แล้ว การรันคำสั่งปกติจะแสดงข้อความเตือนและรอการยืนยัน (พิมพ์ Y เพื่อทับไฟล์เดิม) ซึ่งไม่เหมาะสำหรับสคริปต์อัตโนมัติ

ใช้ตัวเลือก -f (force) เพื่อบังคับทับไฟล์โดยไม่ถาม:

gunzip -f document1.doc.gz

คำเตือน: ใช้ -f อย่างระมัดระวัง เพราะจะทับไฟล์เดิมทันทีโดยไม่มีการยืนยัน

เก็บไฟล์บีบอัดและไฟล์ที่แตกแล้วพร้อมกันด้วย -k

ปกติ gunzip จะลบไฟล์ .gz หลังแตกแล้ว แต่หากต้องการเก็บทั้งสองไฟล์ ใช้ตัวเลือก -k (keep):

gunzip -k myfile.gz

ผลลัพธ์: คุณจะได้ทั้ง myfile (ไฟล์แตกแล้ว) และ myfile.gz (ไฟล์บีบอัดต้นฉบับ)

แสดงเนื้อหาไฟล์ข้อความโดยไม่ต้องแตกด้วย -c

หากไฟล์ .gz เป็นไฟล์ข้อความ สามารถดูเนื้อหาได้ทันทีโดยไม่แตกไฟล์:

gunzip -c myfile.gz

คำสั่งนี้จะแสดงเนื้อหาของ myfile.gz มาที่เทอร์มินัล (stdout)

ดูข้อมูลรายละเอียดไฟล์บีบอัดด้วย -l

ใช้ตัวเลือก -l (list) เพื่อดูข้อมูลของไฟล์บีบอัด:

gunzip -l myfile.gz

ผลลัพธ์จะแสดงข้อมูลดังนี้:

  • Compressed size (ขนาดหลังบีบอัด)
  • Uncompressed size (ขนาดจริงหลังแตก)
  • Ratio (อัตราส่วนการบีบอัด)
  • Uncompressed filename (ชื่อไฟล์หลังแตก)

ข้อมูลนี้มีประโยชน์มากเมื่อต้องจัดการไฟล์ขนาดใหญ่ หรือพื้นที่ดิสก์จำกัด เช่น ไฟล์บีบอัด 8 GB แต่แตกแล้ว 15 GB ในดิสก์ 10 GB จะทำให้แตกไม่สำเร็จ การเช็คด้วย -l ก่อนจะป้องกันปัญหานี้ได้

แตกไฟล์ทุกไฟล์ในโฟลเดอร์และโฟลเดอร์ย่อยแบบ Recursive ด้วย -r

หากต้องการแตกไฟล์ .gz ทั้งหมดในโฟลเดอร์และโฟลเดอร์ย่อยทั้งหมด:

gunzip -r foldername

ตัวอย่างโครงสร้าง:

  • Documents
    • mydoc.gz
    • mydoc1.gz
    • Accounts
      • spreadsheet1.gz
      • spreadsheet2.gz

รัน gunzip -r Documents จะแตกไฟล์ทั้ง 4 ไฟล์พร้อมกัน

ทดสอบความถูกต้องของไฟล์บีบอัดด้วย -t

ใช้ตัวเลือก -t (test) เพื่อตรวจสอบว่าไฟล์ .gz ถูกสร้างมาอย่างถูกต้องหรือไม่:

gunzip -t filename.gz

หากไฟล์เสียหาย จะแสดงข้อความผิดพลาด หากถูกต้อง จะไม่มีข้อความใดๆ (exit code 0)

แสดงข้อมูลรายละเอียดระหว่างแตกไฟล์ด้วย -v

ใช้ตัวเลือก -v (verbose) เพื่อดูขั้นตอนการแตกไฟล์:

gunzip -v filename.gz

ผลลัพธ์ตัวอย่าง:

filename.gz: 20% -- replaced with filename

แสดงชื่อไฟล์ต้นฉบับ อัตราการแตก และชื่อไฟล์ผลลัพธ์