วิธีบีบอัดและแตกไฟล์โดยใช้คำสั่ง tar บน Linux

เผยแพร่แล้ว: 2022-07-23

บีบอัดส่วนหัว Tarball Ubuntu

คำสั่ง tar บน Linux มักใช้เพื่อสร้างไฟล์เก็บถาวร .tar.gz หรือ .tgz หรือที่เรียกว่า “tarballs” คำสั่งนี้มีตัวเลือกมากมาย แต่คุณต้องจำตัวอักษรสองสามตัวเพื่อสร้างไฟล์เก็บถาวรด้วย tar อย่างรวดเร็ว คำสั่ง tar สามารถแตกไฟล์เก็บถาวรที่เป็นผลลัพธ์ได้เช่นกัน

คำสั่ง GNU tar ที่มาพร้อมกับลีนุกซ์ดิสทริบิวชันมีการบีบอัดแบบรวม สามารถสร้างไฟล์เก็บถาวร .tar แล้วบีบอัดด้วย gzip หรือ bzip2 ในคำสั่งเดียว นั่นเป็นสาเหตุที่ไฟล์ผลลัพธ์เป็นไฟล์ .tar.gz หรือ .tar.bz2

อัปเดต 7/18/22: เราได้ตรวจสอบบทความนี้เพื่อความถูกต้องแล้ว และสามารถยืนยันได้ว่ายังคงใช้งานได้กับ Ubuntu เวอร์ชันล่าสุดและลีนุกซ์รุ่นอื่นๆ

บีบอัดไดเร็กทอรีทั้งหมดหรือไฟล์เดียว

ใช้คำสั่งต่อไปนี้เพื่อบีบอัดทั้งไดเร็กทอรีหรือไฟล์เดียวบน Linux มันจะบีบอัดไดเร็กทอรีอื่น ๆ ทั้งหมดภายในไดเร็กทอรีที่คุณระบุ กล่าวคือ มันทำงานแบบเรียกซ้ำ

 tar -czvf name-of-archive.tar.gz /path/to/directory-or-file

นี่คือความหมายของสวิตช์เหล่านั้น:

  • -c: C สร้างไฟล์เก็บถาวร
  • -z: บีบอัดไฟล์เก็บถาวรด้วย g z ip
  • -v: แสดงความคืบหน้าในเทอร์มินัลขณะสร้างไฟล์เก็บถาวร หรือที่เรียกว่าโหมด " v erbose" v เป็นตัวเลือกในคำสั่งเหล่านี้เสมอ แต่มีประโยชน์
  • -f : อนุญาตให้คุณระบุชื่อไฟล์ของไฟล์เก็บถาวร

สมมติว่าคุณมีไดเร็กทอรีชื่อ "stuff" ในไดเร็กทอรีปัจจุบัน และคุณต้องการบันทึกลงในไฟล์ชื่อ archive.tar.gz คุณต้องเรียกใช้คำสั่งต่อไปนี้:

 tar -czvf archive.tar.gz สิ่ง

หรือสมมติว่ามีไดเร็กทอรีอยู่ที่ /usr/local/something บนระบบปัจจุบัน และคุณต้องการบีบอัดให้เป็นไฟล์ชื่อ archive.tar.gz คุณต้องเรียกใช้คำสั่งต่อไปนี้:

 tar -czvf archive.tar.gz /usr/local/something 

เรียกใช้ "tar -czvf" ในโฟลเดอร์ที่ต้องการเพื่อรวมกลุ่มและบีบอัดเนื้อหาทั้งหมด

บีบอัดหลายไดเรกทอรีหรือไฟล์พร้อมกัน

ที่เกี่ยวข้อง: วิธีจัดการไฟล์จาก Linux Terminal: 11 คำสั่งที่คุณต้องรู้

ในขณะที่ tar มักใช้ในการบีบอัดไดเร็กทอรีเดียว คุณสามารถใช้เพื่อบีบอัดไดเร็กทอรีหลายไดเร็กทอรี ไฟล์หลายไฟล์ หรือทั้งสองอย่าง เพียงระบุรายการไฟล์หรือไดเร็กทอรีแทนรายการเดียว ตัวอย่างเช่น สมมติว่าคุณต้องการบีบอัดไดเร็กทอรี /home/ubuntu/Downloads, ไดเร็กทอรี /usr/local/stuff และไฟล์ /home/ubuntu/Documents/notes.txt คุณเพียงแค่เรียกใช้คำสั่งต่อไปนี้:

 tar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txt

เพียงระบุไดเร็กทอรีหรือไฟล์มากเท่าที่คุณต้องการสำรองข้อมูล

Ubuntu Terminal บีบอัดหลายไดเรกทอรีพร้อมกันด้วยคำสั่ง "tar"

ไม่รวมไดเรกทอรีและไฟล์

ในบางกรณี คุณอาจต้องการบีบอัดทั้งไดเร็กทอรี แต่ไม่รวมไฟล์และไดเร็กทอรีบางไฟล์ คุณสามารถทำได้โดยต่อท้ายสวิตช์ --exclude สำหรับแต่ละไดเร็กทอรีหรือไฟล์ที่คุณต้องการแยกออก

ตัวอย่างเช่น สมมติว่าคุณต้องการบีบอัด /home/ubuntu แต่คุณไม่ต้องการบีบอัดไดเร็กทอรี /home/ubuntu/Downloads และ /home/ubuntu/.cache คุณต้องดำเนินการดังนี้:

 tar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cache

สวิตช์ --exclude นั้นทรงพลังมาก ไม่ใช้ชื่อไดเร็กทอรีและไฟล์ แต่ยอมรับรูปแบบได้จริง มีอะไรอีกมากมายที่คุณสามารถทำได้ ตัวอย่างเช่น คุณสามารถเก็บถาวรทั้งไดเร็กทอรีและยกเว้นไฟล์ .mp4 ทั้งหมดด้วยคำสั่งต่อไปนี้:

 tar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4 

คำสั่ง "tar" สามารถปรับแต่งให้ละเว้นบางไฟล์ได้

ใช้การบีบอัด bzip2 แทน

แม้ว่าการบีบอัด gzip มักใช้เพื่อสร้างไฟล์ .tar.gz หรือ .tgz แต่ tar ก็รองรับการบีบอัด bzip2 ด้วย วิธีนี้ช่วยให้คุณสร้างไฟล์บีบอัด bzip2 ซึ่งมักใช้ชื่อไฟล์ .tar.bz2, .tar.bz หรือ .tbz ในการทำเช่นนั้น เพียงแทนที่ -z สำหรับ gzip ในคำสั่งที่นี่ด้วย -j สำหรับ bzip2

Gzip เร็วกว่า แต่โดยทั่วไปจะบีบอัดน้อยกว่าเล็กน้อย ดังนั้นคุณจะได้ไฟล์ที่ค่อนข้างใหญ่ Bzip2 ช้ากว่า แต่บีบอัดอีกเล็กน้อย ดังนั้นคุณจะได้ไฟล์ที่ค่อนข้างเล็กกว่า Gzip ยังพบได้ทั่วไปมากกว่า โดยระบบ Linux แบบแยกส่วนบางระบบรวมถึงการรองรับ gzip โดยค่าเริ่มต้น แต่ไม่รองรับ bzip2 โดยทั่วไปแล้ว gzip และ bzip2 เกือบจะเป็นสิ่งเดียวกัน และทั้งสองจะทำงานในลักษณะเดียวกัน

ตัวอย่างเช่น แทนที่จะใช้ตัวอย่างแรกที่เราให้ไว้สำหรับการบีบอัดไดเรกทอรีของเนื้อหา คุณจะต้องเรียกใช้คำสั่งต่อไปนี้:

 tar -cjvf archive.tar.bz2 สิ่ง 

เทอร์มินัลใช้การบีบอัด bzip2 แทน gzip

แตกไฟล์เก็บถาวร

เมื่อคุณมีไฟล์เก็บถาวรแล้ว คุณสามารถแตกไฟล์ด้วยคำสั่ง tar คำสั่งต่อไปนี้จะแยกเนื้อหาของ archive.tar.gz ไปยังไดเร็กทอรีปัจจุบัน

 tar -xzvf archive.tar.gz

เหมือนกับคำสั่งสร้างไฟล์เก็บถาวรที่เราใช้ด้านบน ยกเว้นสวิตช์ -x แทนที่สวิตช์ -c สิ่งนี้ระบุว่าคุณต้องการแยกไฟล์เก็บ ถาวร แทนที่จะสร้าง

คุณอาจต้องการแยกเนื้อหาของไฟล์เก็บถาวรไปยังไดเร็กทอรีเฉพาะ คุณสามารถทำได้โดยเพิ่มสวิตช์ -C ต่อท้ายคำสั่ง ตัวอย่างเช่น คำสั่งต่อไปนี้จะแตกเนื้อหาของไฟล์ archive.tar.gz ไปยังไดเร็กทอรี /tmp

 tar -xzvf archive.tar.gz -C /tmp

หากไฟล์เป็นไฟล์บีบอัด bzip2 ให้แทนที่ "z" ในคำสั่งด้านบนด้วย "j"

เรียกใช้ "tar" ด้วย "-xzvf" แทนอาร์กิวเมนต์ "-czvf" เพื่อแยกไฟล์ออกจากไฟล์เก็บถาวร tarball


นี่เป็นการใช้คำสั่ง tar ที่ง่ายที่สุด คำสั่งนี้มีตัวเลือกเพิ่มเติมจำนวนมาก ดังนั้นเราจึงไม่สามารถแสดงรายการทั้งหมดได้ที่นี่ สำหรับข้อมูลเพิ่มเติม. รันคำสั่ง info tar ที่เชลล์เพื่อดูหน้าข้อมูลโดยละเอียดของคำสั่ง tar กดปุ่ม q เพื่อออกจากหน้าข้อมูลเมื่อคุณทำเสร็จแล้ว คุณสามารถอ่านคู่มือของ tar ทางออนไลน์ได้

หากคุณใช้เดสก์ท็อป Linux แบบกราฟิก คุณสามารถใช้ยูทิลิตี้การบีบอัดไฟล์หรือตัวจัดการไฟล์ที่มาพร้อมกับเดสก์ท็อปของคุณเพื่อสร้างหรือแตกไฟล์ .tar บน Windows คุณสามารถแยกและสร้างไฟล์ .tar ด้วยยูทิลิตี้ 7-Zip ฟรี

ที่เกี่ยวข้อง: แล็ปท็อป Linux ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ