若要查看封存檔包含哪些檔案而不解壓縮,請使用終端機的列出命令:ZIP 檔使用 unzip -l,TAR 封存檔使用 tar -tf。本指南說明如何檢查檔名、資料夾結構及可用詳細資訊,同時不解壓縮封存檔中的檔案。

使用終端機從 Finder 列出 ZIP 檔內容

對於 ZIP 檔,請先使用 unzip -l。小寫的 -l 選項會列出項目名稱、解壓縮後的大小及修改日期。若執行 unzip 時未指定列出選項,通常會將檔案解壓縮到目前目錄,因此請保留此選項。這些行為記載於Apple 發布的 unzip 手冊中。

  1. 開啟終端機,並讓包含 ZIP 檔的 Finder 視窗保持開啟。
  2. 輸入 /usr/bin/unzip -l,後面加一個空格。先不要按 Return。
  3. 將 ZIP 檔從 Finder 拖到終端機視窗中,放在空格之後。
  4. 確認命令以 /usr/bin/unzip -l 開頭,後面接著封存檔路徑,然後按 Return。

如Apple 的終端機指南所述,將檔案拖進終端機會插入其絕對路徑。這樣就不必先切換到封存檔所在的資料夾再列出內容。

例如,如果桌面上有一個名為 Archive Inspection Demo.zip 的臨時 ZIP 檔,完整命令如下:

/usr/bin/unzip -l "$HOME/Desktop/Archive Inspection Demo.zip"

此處以引號括住路徑,讓範例檔名中的空格保持在一起。此命令要求 ZIP 檔已存在於該位置;它不會建立範例封存檔。如果你的檔案位於其他位置或名稱不同,請使用拖曳方式,而不是複製範例路徑。

Apple 說明,在 Finder 中按兩下 ZIP 檔會將其展開,展開後的項目會出現在 ZIP 檔旁邊。進行這項檢查時,請選取封存檔並拖曳。請參閱Apple 的 ZIP 說明。

使用臨時封存檔練習

你可以只用虛構文字建立一個小範例。請選擇尚未使用的資料夾名稱,讓練習內容與現有檔案分開。

  1. 在 Finder 中前往桌面,選擇 檔案 > 新增資料夾。將資料夾命名為 Archive Inspection Demo。如果名稱已存在,請另選一個未使用的名稱,並在整個練習中使用該名稱。Apple 在於 Mac 上以資料夾整理檔案中說明了建立資料夾的方式。
  2. 在文字編輯中建立一份包含 Blue circle sample 的文件。選擇 格式 > 製作純文字,再選擇 檔案 > 儲存,將文件以 shapes.txt 為名儲存在新資料夾中。
  3. 再建立一份包含 Green square sample 的純文字文件,並以 colors.txt 為名儲存在該資料夾中。這些文件建立與轉換步驟依照Apple 的文字編輯指南。
  4. 在 Finder 中按住 Control 鍵並點按資料夾,然後選擇 壓縮。Apple 說明,壓縮單一資料夾會產生一個以該資料夾命名的 ZIP 檔。繼續之前,請確認該名稱的 ZIP 檔尚未存在;如有需要,請使用新的資料夾名稱。請參閱在 Mac 上壓縮與解壓縮檔案和資料夾。
  5. 使用上述終端機步驟列出產生的 ZIP 檔內容。

請尋找對應於 Archive Inspection Demo/shapes.txt 和 Archive Inspection Demo/colors.txt 的項目。這些是此建構範例預期出現的路徑,並非來自實際測試 Mac 工作階段的逐字記錄。項目順序及其他項目可能有所不同。

原始資料夾仍會存在,因為你是在壓縮前建立它的。資料夾仍在並不能證明列出命令解壓縮了任何內容。完成後,你可以在 Finder 中刪除這個範例資料夾和 ZIP 檔。

閱讀列表並選擇所需的詳細程度

封存檔列表會告訴你封存檔中存有哪些項目,但不會開啟各項目中的文字或影像。請使用下表選擇最精簡且足夠的檢查方式:

你的問題 命令或檢查方式 解讀方式
ZIP 中有哪些項目?各自多大? unzip -l 後接封存檔路徑 查看儲存的路徑及解壓縮後的大小。
我可以只查看 ZIP 項目名稱嗎? unzip -Z1 後接封存檔路徑 每行顯示一個項目名稱,不含摘要表格。
名稱相似的檔案是否位於不同資料夾? 比較完整的項目路徑 Drafts/shapes.txt 和 Final/shapes.txt 是不同路徑。
桌面上已經有列出的檔案嗎? 在 Finder 中另外檢查預定位置 封存檔中有某個項目,並不能證明該處另有一個獨立檔案。

若要以較簡潔的名稱清單檢視合成範例,請執行:

/usr/bin/unzip -Z1 "$HOME/Desktop/Archive Inspection Demo.zip"

此處的 -Z 會選擇 ZipInfo 模式,而 1 會要求只列出檔名,每行一個。儲存的目錄名稱仍會包含在顯示的路徑中。這些選項記載於Apple 發布的 zipinfo 手冊中。

比較項目時請保留完整路徑。封存檔中兩個名為 shapes.txt 的檔案可能位於不同資料夾。反過來說,列表無法判定日後若將項目解壓縮到含有相同名稱的資料夾中會發生什麼事。這種做法只顯示列表,不會寫入封存檔中的檔案,因此不會涉及目的地位置的問題。

成功列出內容的意義也比完整測試封存檔更有限。unzip 手冊記載了另一種 -t 操作,它會在記憶體中展開項目並檢查儲存的校驗和。看到項目名稱不等於測試其內容。請參閱列出與測試選項的說明。

檢視 TAR 封存檔及壓縮 TAR 檔

對於 TAR 封存檔,請使用 /usr/bin/tar -tf,後面接其路徑。Apple 發布的手冊中,-t 會選擇列出模式,-f 則指定封存檔。此實作在讀取時會自動辨識 gzip 壓縮,因此這個命令格式也適用於 gzip 壓縮的 TAR 封存檔。請參閱Apple 發布的 tar 手冊。

例如,若桌面上已有名為 Sample Bundle.tar.gz 的合成封存檔,完整命令如下:

/usr/bin/tar -tf "$HOME/Desktop/Sample Bundle.tar.gz"

這是另一個範例:上方的 Finder 練習會建立 ZIP,而非這個 TAR 檔。只有在此類檔案已存在後才執行此命令;或者輸入 /usr/bin/tar -tf,後面加一個空格,再將現有的臨時 TAR 封存檔拖進終端機。

若要要求顯示更詳細的列表,請加上 v:

/usr/bin/tar -tvf "$HOME/Desktop/Sample Bundle.tar.gz"

手冊說明,詳細列表輸出類似目錄的長格式列表。請在命令中保留 t:x 會選擇將內容解壓縮到磁碟。相同手冊也說明,封存檔中的重複名稱在解壓縮時可能會覆寫較早的項目,這也是要區分列出內容與解壓縮的另一個原因。請參閱tar 模式與詳細選項。

Apple「捷徑」能如何用於這項工作流程?

「捷徑」可以接收在 Finder 中選取的項目,並以 Finder 動作的形式顯示。這種整合提供了自動化的起點,但本身並未定義列出封存檔內容的操作。Apple 的Finder 與快速動作說明介紹捷徑的執行位置,而上文的命令手冊則說明實際的列出行為。

調整現有捷徑之前,請先檢查其中的動作。在編輯器的動作資料庫中,將游標移到某個動作上,然後點按其資訊按鈕。若動作已在捷徑中,請按住 Control 鍵並點按其圖像,然後選擇 顯示資訊。Apple 表示,這項說明會列出可接受的輸入及產生的輸出。請參閱在 Mac 上瀏覽「捷徑」中的動作列表。

進行這項工作時,請區分三件事:選取的封存檔是一個檔案,列表是描述項目的文字,而項目名稱不是已解壓縮的檔案物件。會透過解壓縮封存檔來產生檔案的動作,會改變工作流程。Apple 引用的指南並未證明系統內建封存檔目錄瀏覽器,因此此處完整的檢查程序使用終端機,不假設有具備該功能的動作。

輸入設定也很重要。Apple 說明,捷徑可以限制可接受的內容類型,並在沒有輸入時使用 停止並回應。Finder 工作流程應接受檔案;若缺少輸入,應清楚停止,而不是將空值傳給後續步驟。這些控制項記載於在 Mac 上從其他 App 執行捷徑時限制其輸入。

封存檔無法正確列出時

根據結果決定下一步,避免反覆更改選項:

  • 找不到封存檔: 確認該檔案仍在 Finder 中,然後重新拖曳該檔案以建立命令。如果 Finder 建立的 ZIP 使用不同名稱,請重新確認範例名稱。
  • 輸出顯示格式或讀取錯誤: 檢查尚未成功完成。請重新確認選取的是預期的封存檔;更改檔名副檔名並不能證明其內容採用該格式。
  • 錯誤前出現部分名稱: 將結果視為不完整。不要推斷可見項目就是封存檔的全部內容。
  • 某個項目本身是另一個封存檔: 外層列表會將該巢狀封存檔列為一個項目,但無法說明巢狀封存檔本身包含什麼。

一般 ZIP 檢查最精簡的完整流程是輸入 /usr/bin/unzip -l,加一個空格,拖入封存檔,再按 Return。查看完整項目路徑及任何最後訊息。取得所需的檔名或結構後,檢查便已完成,且沒有解壓縮封存檔中的檔案。

來源