วิธี Zip Unzip ไฟล์บน Linux หรือ Ubuntu
Zip คือวิธี การบีบอัดไฟล์ (compression) รูปแบบหนึ่งที่นิยมที่สุด และเป็นเรื่องพื้นฐานสำหรับการใช้งานคอมพิวเตอร์ในยุคปัจจุบัน ไม่ว่าจะใช้ในการส่งไฟล์จำนวนมาก หรือมีไฟล์ที่มีขนาดใหญ่ต้องการย่อให้เล็กลง ก่อนที่จะส่งไฟล์ให้คนอื่น
หากเป็นบน Windows หรือระบบปฏิบัติการที่มี GUI เชื่อว่าเพื่อนๆ ก็คุ้นเคยกันดูอยู่แล้ว ง่ายๆ เพียงแค่คลิกขวาที่ไฟล์หรือโฟลเดอร์ แล้วทำการ Compressed ได้เลย
แต่…เมื่อเราใช้ระบบปฏิบัติการที่ไม่มี GUI หรือจำเป็นต้องใช้ Command Line หละ ทำยังไง?!? (เกริ่นมาซะยืดยาว เริ่มเข้าเรื่องสักที LOL)
หลายๆ คนที่เซียนๆ แล้ว ก็อาจจะทราบอยู่แล้วว่าใช้ tar สิ ไม่เห็นจะยากเลย ก็แค่…
tar -czvf name-of-archive.tar.gz /path/to/directory-or-filetar -czvf archive.tar.gz directory-nametar -czvf archive.tar.gz /home/ubuntu/Downloads /usr/local/stuff /home/ubuntu/Documents/notes.txttar -czvf archive.tar.gz /home/ubuntu --exclude=/home/ubuntu/Downloads --exclude=/home/ubuntu/.cachetar -czvf archive.tar.gz /home/ubuntu --exclude=*.mp4tar -xzvf archive.tar.gztar -xzvf archive.tar.gz -C /tmp
แบบนี้ไง …
แต่!!! สำหรับมือใหม่ คงต้องเริ่มด้วยคำถาม -czvf -xzvf คืออะไรหว่าาา แล้ว ลำดับมันยังไงนะ อะไรก่อนหลัง เลือกไฟล์ ตั้งชื่อไฟล์ ยังไงนะ บลาๆๆ … หัดครั้งแรก นานๆ กลับมาใช้อีกครั้งก็นั่งหาคำตอบแบบเดิมนี่แหละ เพราะลืมได้ง่าย 555
วันนี้ผมมีชุดคำสั่งง่ายๆ ที่หลายๆ Instance / Container บน Cloud ยุคปัจจุบันมักมีตัดมาให้พื้นฐานเลยอยู่แล้วก็คือ zip / unzip ที่เราคุ้นเคยกันอยู่แล้วนั่นเอง~~
หากลองแล้วบนเครื่องของเรายังไม่มีก็สามารถติดตั้งง่ายๆ ด้วยคำสั่งด้านล่างนี้ได้เลย
sudo apt install zip unzip
เรามาเริ่มรู้จักกับคำสั่งกันเถอะ
การบีบอัดไฟล์ (Zip) หรือ folder บนระบบ Linux ด้วย Command Line
คำสั่งค่อนข้างตรงไปตรงมาครับ จำง่ายอ่านรู้เรื่อง
zip <option> <ชื่อไฟล์ zip ที่ต้องการ> <ชื่อไฟล์ที่1> <ชื่อไฟล์ที่2> <ชื่อโฟลเดอร์ที่1>
จากโครงสร้างด้านบนอาจจะเห็นว่ามี option โผล่มาอยู่ตัวนึง จริงๆ มีอยู่หลาย option แต่เพื่อความไม่ งง เพราะเราต้องการแค่สร้างไฟล์บีบอัดจาก ไฟล์ และ โฟลเดอร์เท่านั้น เราจะใช้แค่ -r ดังตัวอย่างด้านล่างนี้
zip -r output_compressed.zip file1.txt file2.css folder1
จากตัวอย่าง จะสังเกตได้ว่า
หลังจาก <ชื่อไฟล์ที่ต้องการ> จะเป็นการเพิ่มชื่อไฟล์แล้ววรรค แล้ววรรค แล้ววรรคต่อไปได้เรื่อยๆ จะกี่ไฟล์ กี่โฟลเดร์แล้วแต่เพื่อนๆ สะดวกเลยครับ
การแตกไฟล์ (Unzip) ไปยัง folder บนระบบ Linux ด้วย Command Line
แบบง่ายๆ ตรงไป ตรงมา เช่นเคย แถมง่ายกว่า ตอน zip อีก
unzip output_compressed.zip
เป็นอันเสร็จจบ ง่ายไหมครับ
Trick & Tips: จากตัวอย่างด้านบน อาจจะเห็นว่าผมมีการย้ายไฟล์ zip ไปยังที่อยู่ปลายทางหลายขั้นตอนก่อนที่จะแตกไฟล์ ที่จริงคำสั่ง upzip สามารถแตกไฟล์ไปยังที่อยู่ปลายทางได้เลยในคำสั่งตัวเอง โดยการเติม option -d ไปแล้วตามด้วยที่อยู่ปลายทาง ได้เลยครับ
unzip output_compressed.zip -d <ที่อยู่ปลายทาง>
การตรวจดูไฟล์ด้านในไฟล์ Zip โดยไม่ Unzip
เราสามารถใช้ option -l เพื่อดูไฟล์ด้านใน zip ก่อนได้โดยใช้คำสั่งด้านล่างนี้
unzip -l output_compressed.zip
เป็นอย่างไรกันบ้างครับ ง่ายไหมเอ่ย
สรุปอีกที รวมที่ใช้บ่อยๆ คำสั่งมีแค่นี้ครับ
zip -r output_compressed.zip file1.txt folder1 //บีบอัดไฟล์
unzip output_compressed.zip //แตกไฟล์
unzip -l output_compressed.zip //ตรวจดูไฟล์ด้านใน