ใน Ubuntu เหมือน Linux distributions ส่วนใหญ่ มีเครื่องมือมากมายสำหรับทุกความต้องการ ระหว่างนั้นมี Archive Manager สำหรับจัดเก็บไฟล์ในแพ็กเกจบีบอัด แต่มีปัญหาเล็กน้อย: ไฟล์อาจยังใหญ่เกินไปสำหรับความต้องการ ในกรณีเหล่านี้ วิธีที่ดีที่สุดคือบีบอัดและแยกไฟล์เป็นส่วนๆ ที่เล็กลง
แม้ Ubuntu จะมีเครื่องมือสำหรับทำอย่างนี้ แต่ Archive Manager ไม่ใช่ตัวเลือกที่ดีที่สุดสำหรับงานแบบนี้ จึงต้องใช้เทอร์มินัล โชคดีที่กระบวนการง่าย และสามารถบีบอัดและแยกไฟล์เป็นชิ้นเล็กๆ ได้ในคำสั่งเดียว มาดูวิธีการกัน
ทำความเข้าใจการบีบอัด
ก่อนเริ่ม ต้องอธิบายเรื่องการบีบอัดทุกรูปแบบที่จะช่วยประหยัดเวลา: การบีบอัดไม่ได้สะสมกัน
หมายถึง หากมีไฟล์ที่บีบอัดสูงอยู่แล้ว (JPG, MP4, ไฟล์บีบอัดอื่นๆ) การบีบอัดซ้ำด้วยอัลกอริทึมต่างกันจะไม่ช่วยลดขนาดมาก ควรเลือก "store" (เก็บโดยไม่บีบอัด) ในอาร์คайฟแทน
แต่สำหรับไฟล์ที่ไม่ได้บีบอัดหรือบีบอัดน้อย เช่น TXT, ฐานข้อมูลขนาดใหญ่, สื่อที่ไม่ได้บีบอัด การใช้การตั้งค่าบีบอัดสูงสุดจะสร้างไฟล์เล็กลงได้มาก
วิธีคลาสสิกของ Linux
สมมติต้องการบีบอัดไฟล์อย่าง Windows 10 ISO ใช้เครื่องมือคลาสสิกอย่าง tar, split, bzip เพื่อบีบอัดและแยกเป็นไฟล์เล็กๆ
ขั้นตอนที่ 1: เปิดเทอร์มินัล (CTRL+ALT+T) ไปที่โฟลเดอร์ที่มีไฟล์ขนาดใหญ่ สร้างโฟลเดอร์ย่อย "split" เพื่อเก็บอาร์คายฟ์ที่แยก:
mkdir split
เข้าไปในโฟลเดอร์:
cd split
ขั้นตอนที่ 2: ใช้คำสั่งนี้บีบอัดไฟล์/โฟลเดอร์เป็น split archive:
tar -cvj FILENAME | split -b SIZE_OF_PARTS -d - "BASE NAME OF ARCHIVE"
ตัวอย่างสำหรับ Windows 10 ISO:
tar -cvj ~/Data/Windows10.iso | split -b 50m -d - "Windows10_ISO.tar.bz."
~/Data/Windows10.iso= พาธและชื่อไฟล์ที่ต้องการบีบอัดsplit -b 50m= แยกเป็นส่วนๆ ละ 50 MB (เปลี่ยนค่าตามต้องการ)Windows10_ISO.tar.bz.= ชื่อไฟล์อาร์คายฟ์ที่แยก (มีจุดท้ายเพื่อให้แต่ละชิ้นมีตัวเลขลำดับต่อท้าย)
รอสักครู่ (ขึ้นอยู่กับขนาดไฟล์และความเร็วคอมพิวเตอร์) จะพบส่วนต่างๆ ของ split archive ในโฟลเดอร์ split
ถ้าตรวจสอบขนาดรวม จะน้อยกว่าขนาดรวมก่อนบีบอัด
การกู้คืนไฟล์ต้นฉบับ: รวมทุกส่วนเป็นอาร์คายฟ์เดียวก่อน:
cat BASE_NAME_OF_PARTS.* > BASE_NAME_OF_PARTS.bz
จากนั้นแยกเนื้อหา:
tar -xvj REASSEMBLED_ARCHIVE.bz
ตัวอย่าง:
cat Windows10_ISO.tar.bz.* > Windows10_ISO.tar.bz tar -xvj Windows10_ISO.tar.bz
แต่เราสามารถทำได้ดีกว่านี้ด้วยเครื่องมือบีบอัดสมัยใหม่ ดูต่อไป
โซลูชันบีบอัดสูงสมัยใหม่: 7Zip
7Zip เป็นอาร์คายเวอร์สมัยใหม่ที่ให้อัตราการบีบอัดสูงและรองรับ split archives จึงเป็นโซลูชันที่ดีกว่า แต่ Ubuntu ไม่มาพร้อม 7Zip ติดตั้งเวอร์ชัน Linux คือ p7zip:
sudo apt install p7zip-full
การบีบอัดไฟล์เป็น split archive ด้วย 7Zip ง่ายกว่าวิธีเดิม เพียงระบุขนาดแต่ละไฟล์ที่แยก ชื่ออาร์คายฟ์พื้นฐาน และไฟล์ที่ต้องการบีบอัด:
7z -vSIZE_OF_SPLIT_FILES a ARCHIVE_FILENAME FILE_TO_COMPRESS
ตัวอย่าง Windows 10 ISO แยกเป็น 50 MB ต่อไฟล์:
7z -v50m a Windows10_iso.7z ~/Data/Windows10.iso
หลังจากเสร็จ จะพบผลลัพธ์ในโฟลเดอร์ split ขนาดจะน้อยกว่าวิธี tar-split-bzip
การแยกไฟล์กลับ: แยกเฉพาะไฟล์แรกของลำดับ 7z จะประมวลผลส่วนที่เหลืออัตโนมัติ:
7z e FIRST_PART_OF_COMPRESSED_ARCHIVE
ตัวอย่าง:
7z e Windows10_iso.7z.001
ปัจจุบันยังมีตัวเลือกอื่นๆ สำหรับสร้างอาร์คายฟ์บีบอัด เช่น pigz หรือ plzip
คุณคิดว่า split archives บีบอัดมีประโยชน์ไหม? ใช้เครื่องมือบีบอัดอะไรจัดการกับมัน? บอกเราในส่วนความคิดเห็นด้านล่าง