解壓縮時禁止提取 __MACOSX 目錄

解壓縮時禁止提取 __MACOSX 目錄

Mac OS X 系統上產生的 ZIP 檔案通常包含一個__MACOSX目錄無用的、煩人的、不受歡迎的幾乎在所有其他作業系統上。

為了解壓 ZIP 檔案,我使用資訊ZIP,我認為這是大多數 Linux 發行版上的預設解壓縮程式。讓 Info-ZIPunzip始終自動禁止提取__MACOSX可能存在的任何目錄的最佳方法是什麼?

根據unzip手冊頁,該-x選項可用於從處理中排除目錄,並且實際上添加到-x __MACOSX/*我的命令列末尾unzip就可以解決問題。但我不想一直輸入這些內容。手冊頁還說可以從UNZIP環境變數中讀取命令列選項,但顯然這只適用於那些來自存檔名稱(-x必須位於其後面):

$ export UNZIP="-x __MACOSX/*"
$ unzip foo.zip
unzip:  cannot find or open __MACOSX, __MACOSX.zip or __MACOSX.ZIP.

有沒有比包裝unzip在 shell 腳本中自動添加-x __MACOSX/*到命令列末尾更好的解決方案?

答案1

使用 shell 函數:

myunzip() {
    unzip "$@" -x '__MACOSX/*'
}

myunzip foo.zip

相關內容