macOS 合併 Google Drive 壓縮下載

Google Drive 如果你有很多檔案要下載,它會壓縮成 .zip 檔案,檔案大小較大,又會分成多個 .zip

他的壓縮方式也不是典型 zip 的分割檔,而是可以獨立解壓縮,如果用 Finder 合併也會有資料夾被取代的問題。

這篇教學將會教大家輕鬆解壓縮不會遇到合併問題。(這篇會需要用到「終端機」,目前現在位置有你想要解壓縮的資料。)

步驟

如果要合併的話也很簡單,先建立一個資料夾名為 combined

1
mkdir combined

Unzip

可以使用 unzip 解壓縮到指定的資料夾

1
unzip drive-download-20230812T155524Z-001.zip -d combined

這樣確實解壓縮了,但是這樣一次只有一個檔案,如果我有很多檔案怎麼辦?

這時候需要 for 指令,尋找指定的 pattern,把後面的數字(E.g. 001)變成 *,像這樣:

1
2
3
4
for archive in drive-download-20230812T155524Z-*.zip
do
unzip "$archive" -d combined
done

通常沒什麼問題就會解壓縮成功,但如果路徑有遇到其他字元(E.g. 日文字),就會遇到 Illegal byte sequence 問題:

1
2
3
checkdir error:  cannot create combined/09. MURASAKi/SUSHI?? feat.+
Illegal byte sequence
unable to process 09. MURASAKi/SUSHI?? feat.+/pv.mp4.

像這個問題就必須使用 ditto 指令來解壓縮。

Ditto

Ditto 是 macOS 的內建命令,說真的筆者在找的時候也沒有找到很多關於介紹它的指令,但根據說明它可以合併檔案,還同時可以壓縮和解壓縮。

如果要解壓縮可以這樣使用:

1
ditto -V -x -k --sequesterRsrc drive-download-20230812T155524Z-001.zip combined

結合剛剛前面所學的 for 指令,就可以組合這樣的指令出來:

1
2
3
4
for archive in drive-download-20230812T155524Z-*.zip
do
ditto -V -x -k --sequesterRsrc "$archive" combined
done

到這裡就沒有遇到其他問題,確認檔案也是完整。

後記

其實我也第一次遇到 macOS 神奇的內建命令,功能似乎除了合併資料夾內的檔案以外,-x 會使用 CPIO 格式解壓縮,-k 則會把前者 CPIO 取代為 ZIP 格式。

目前大概研究到這邊,詳細可以看 man ditto 說明。


macOS 合併 Google Drive 壓縮下載
https://blog.yangjerry.tw/google-drive-download-part-migrate/
作者
Jerry Yang
發布於
2023年8月13日
許可協議