如何刪除 macOS 壓縮包中的隱藏檔案

壓縮打包是檔案管理中不可缺少的功能。多個檔案或資料夾壓縮後,便於傳輸,也可避免損壞或缺失。macOS 系統中,我們一般使用訪達(Finder)右鍵選單中的壓縮功能,十分方便。然而卻有個問題,就是壓縮後的檔案中包含 __MACOSX、.DS_Store 等 macOS 系統隱藏檔案。

如果是在 macOS 系統上進行解壓或檢視,這些檔案是隱藏的,沒有什麼影響。但如果是傳送給 Windows 系統使用者,則解壓後這些檔案就會顯示出來,可能引起對方的疑惑,造成不必要的麻煩。

壓縮檔案中的隱藏檔案

其實,我們可以使用 macOS 自帶的自動化軟體自動操作(Automator)來解決這個問題。

解決方法

這裡,可以下載我製作的 淨化Zip壓縮檔案.workflow.zip ,解壓後雙擊安裝。

服務安裝

之後,如果需要去除 Zip 壓縮檔案中的系統隱藏檔案,直接選擇其右鍵選單服務專案中的「淨化Zip壓縮檔案」即可。處理完成時,還會發出提醒。

演示

原理

使用「自動操作」開啟後,可以看到其內容並不複雜。首先,其工作範圍設定在“訪達中的檔案或資料夾”,這樣就只會在這些位置的右鍵選單中出現。當然,你也可以根據自己的需要進行修改。具體的檔案處理操作則是由 Shell 指令碼完成的。處理完成後發出通知提醒。

內部流程

Shell 指令碼內容如下,同樣是使用的 macOS 自帶命令,不需要額外安裝軟體也無需網路,支援多檔案批量操作。指令碼的大致流程為:對選中的每個檔案,判斷是否為 zip 壓縮檔案,如果是則進行淨化操作。# 迴圈處理選擇的多個檔案 for f in "$@" do  # 獲取檔案型別,以確保是 Zip 壓縮檔案  fileType=$(file -bI "$f")  if [[ $fileType =~ "application/zip*" ]]; then  # 刪除 __MACOSX 與 .DS_Store 檔案  zip -d "$f" /*__MACOSX/* || true  zip -d "$f" /*.DS_Store/* || true  fi done

   

結語

其實,__MACOSX 與.DS_Store 是 macOS 系統用來儲存資料夾自定義圖示、其中檔案位置等後設資料資訊的。如果 Zip 壓縮檔案始終在 macOS 上使用,這些檔案就不會顯示出來,也不必去除這些檔案。

你也可以使用 Keka、BetterZip 等壓縮軟體,它們都具有壓縮時排除 __MACOSX 與.DS_Store 等檔案的功能。