วิธี Zip Unzip ไฟล์บน Linux หรือ Ubuntu

Chanatip Trongpanyachot
LF FINTECH
Published in
2 min readJun 17, 2021

Zip คือวิธี การบีบอัดไฟล์ (compression) รูปแบบหนึ่งที่นิยมที่สุด และเป็นเรื่องพื้นฐานสำหรับการใช้งานคอมพิวเตอร์ในยุคปัจจุบัน ไม่ว่าจะใช้ในการส่งไฟล์จำนวนมาก หรือมีไฟล์ที่มีขนาดใหญ่ต้องการย่อให้เล็กลง ก่อนที่จะส่งไฟล์ให้คนอื่น

หากเป็นบน Windows หรือระบบปฏิบัติการที่มี GUI เชื่อว่าเพื่อนๆ ก็คุ้นเคยกันดูอยู่แล้ว ง่ายๆ เพียงแค่คลิกขวาที่ไฟล์หรือโฟลเดอร์ แล้วทำการ Compressed ได้เลย

การบีบอัดไฟล์ (Compressed Zipped) ด้วยฟังก์ชันพื้นฐานบนระบบ Windows

แต่…เมื่อเราใช้ระบบปฏิบัติการที่ไม่มี 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
ตัวอย่างหน้าจอเมื่อไม่มี package 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
ตัวอย่างการบีบอัดไฟล์ด้วยคำสั่ง zip

จากตัวอย่าง จะสังเกตได้ว่า

หลังจาก <ชื่อไฟล์ที่ต้องการ> จะเป็นการเพิ่มชื่อไฟล์แล้ววรรค แล้ววรรค แล้ววรรคต่อไปได้เรื่อยๆ จะกี่ไฟล์ กี่โฟลเดร์แล้วแต่เพื่อนๆ สะดวกเลยครับ

การแตกไฟล์ (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

เป็นอย่างไรกันบ้างครับ ง่ายไหมเอ่ย

สรุปอีกที รวมที่ใช้บ่อยๆ คำสั่งมีแค่นี้ครับ

zip -r output_compressed.zip file1.txt folder1 //บีบอัดไฟล์
unzip output_compressed.zip //แตกไฟล์
unzip -l output_compressed.zip //ตรวจดูไฟล์ด้านใน

--

--