Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีบีบอัดและแยกไฟล์ใน Ubuntu

ใน 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 บีบอัดมีประโยชน์ไหม? ใช้เครื่องมือบีบอัดอะไรจัดการกับมัน? บอกเราในส่วนความคิดเห็นด้านล่าง