
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