วิธีบีบอัดและแตกไฟล์โดยใช้คำสั่ง tar บน Linux
เผยแพร่แล้ว: 2022-07-23คำสั่ง 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
บีบอัดหลายไดเรกทอรีหรือไฟล์พร้อมกัน
ที่เกี่ยวข้อง: วิธีจัดการไฟล์จาก 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
เพียงระบุไดเร็กทอรีหรือไฟล์มากเท่าที่คุณต้องการสำรองข้อมูล
ไม่รวมไดเรกทอรีและไฟล์
ในบางกรณี คุณอาจต้องการบีบอัดทั้งไดเร็กทอรี แต่ไม่รวมไฟล์และไดเร็กทอรีบางไฟล์ คุณสามารถทำได้โดยต่อท้ายสวิตช์ --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
ใช้การบีบอัด 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 สิ่ง

แตกไฟล์เก็บถาวร
เมื่อคุณมีไฟล์เก็บถาวรแล้ว คุณสามารถแตกไฟล์ด้วยคำสั่ง 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 ที่ง่ายที่สุด คำสั่งนี้มีตัวเลือกเพิ่มเติมจำนวนมาก ดังนั้นเราจึงไม่สามารถแสดงรายการทั้งหมดได้ที่นี่ สำหรับข้อมูลเพิ่มเติม. รันคำสั่ง info tar ที่เชลล์เพื่อดูหน้าข้อมูลโดยละเอียดของคำสั่ง tar กดปุ่ม q เพื่อออกจากหน้าข้อมูลเมื่อคุณทำเสร็จแล้ว คุณสามารถอ่านคู่มือของ tar ทางออนไลน์ได้
หากคุณใช้เดสก์ท็อป Linux แบบกราฟิก คุณสามารถใช้ยูทิลิตี้การบีบอัดไฟล์หรือตัวจัดการไฟล์ที่มาพร้อมกับเดสก์ท็อปของคุณเพื่อสร้างหรือแตกไฟล์ .tar บน Windows คุณสามารถแยกและสร้างไฟล์ .tar ด้วยยูทิลิตี้ 7-Zip ฟรี
คำสั่งลินุกซ์ | ||
ไฟล์ | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · ดู · strings · พิมพ์ · เปลี่ยนชื่อ · zip · unzip · mount · umount · ติดตั้ง · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · ฉีก · srm | |
กระบวนการ | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · หมดเวลา · ผนัง · ใช่ · ฆ่า · หลับ · sudo · su · เวลา · groupadd · usermod · กลุ่ม · lshw · ปิดระบบ · รีบูต · หยุด · poweroff · passwd · lscpu · crontab · วันที่ · bg · fg | |
ระบบเครือข่าย | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
ที่เกี่ยวข้อง: แล็ปท็อป Linux ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ