2024/04/20

用CLI和p7-zip解割大檔案

本文已發佈逾11 年,除非文中有標注更新,否則內含的資訊有可能不合時宜,敬請注意!

上回講到在跑busybox linux的Synology NAS上可以用p7zip解決各種稀奇古怪壓縮檔的解壓問題,這篇會講講如何用CLI的p7zip去將特大檔案分割成較小的n個檔案去寫進FAT32的USB手指上。

Split large file with CLI p7zip

DVD的ISO和1080p的高清mkv之類,因為大過FAT32的4GB大小限制,而busybox本身又不支援ExFAT的USB手指(只有Windows 7以上、Mac OS X 10.7以上支援),於是就要把大檔案分割開──就像當年要把幾十MB的檔案分成1.4MB大小、幾十個檔案塞進幾十片3.5吋floppy上差不多……

(當年…)

閒話休題,指令碼如下:

7z a -t7z -mx0 -v640m movie.7z movie.mkv

指令碼基本是這樣解釋的──

  • 7z是召喚7-zip魔獸來a(壓縮封裝/archive),movie.7z是完成品的檔名,movie.mkv就是要對付的大檔案。
  • -t7z是把東西壓成7zip格式,你也可以選-tzip、-tgzip、-ttar甚至-tiso。
  • -v640m是壓縮檔拆成每640MB一個,結果會是movie.7z.001、movie.7z.002、movie.7z.003、movie.7z.004、movie.7z.005、movie.7z.006和movie.7z.007。沒有規定是640MB的,只是我這老人家燒光碟時代的某種慣性啦。
  • p7zip有-mx0至-mx9共十級的壓縮度,-mx0是完全沒有壓縮,mx9是「極緻」級,p7zip一般會用-mx5。然而,壓縮和解壓都很花時間,要我們這是要對付大檔案(又不是超級無敵大)的話,就用-mx0好了。

更多p7zip的指令請看這個英文站