Metlivi 部落格

如何檢查整合照片庫中的損毀檔案

若要檢查整合照片庫,請使用可讀取影像資料的解碼器掃描每張影像,儲存失敗或觸發警告的檔案報告,然後在替換或還原任何內容之前逐一檢查這些檔案。快速檢視縮圖或檔案大小可以找出顯而易見的問題,但無法確認完整影像是否可讀取。此工作流程使用 ImageMagick 的 magick identify,適用於儲存在本機或已掛載磁碟機上的照片庫。

2026年10月15日閱讀時間 6 分鐘作者:Metlivi Editorial Team
第 1 節

損毀檢查能告訴你什麼——以及不能告訴你什麼

檔案可能具有常見的副檔名和看似合理的大小,但卻包含截斷或損壞的影像資料。相反地,能在某個檢視器中開啟的檔案,在另一個解碼器中仍可能會產生警告或讀取失敗。掃描只記錄了特定工具如何讀取檔案;它無法證明每個像素在視覺上都正確無誤,也無法保證每個應用程式都會以相同方式解讀該檔案。

ImageMagick 的 magick identify 可回報影像特徵,並能偵測不完整或損毀的檔案。若要進行有意義的檢查,請使用 +ping 要求完整讀取:ImageMagick 說明其預設的 ping 模式僅讀取基本辨識所需的資訊,可能不會讀取整個影像。加入 -regard-warnings 可讓警告影響指令的結束狀態(exit status)。ImageMagick Identify 文件、ImageMagick 基本用法

請將檢查結果視為初步篩選。被回報警告的檔案值得進一步檢視;但警告本身並不代表該照片完全無法使用。掃描結果無異常僅代表此解碼器順利完成讀取且未回報問題,並不代表畫面看起來一定正確,或所有特定檔案格式的細節都完好無損。

第 2 節

掃描前準備照片庫

請先從穩定的複本或備份開始。切勿在檔案的唯一複本上執行修復或轉換:某些復原嘗試可能會變更資料,而中斷的寫入操作可能會使損壞的檔案變得更糟。如果整合照片庫跨越多個磁碟機或資料夾,請記下你打算納入的每個根目錄。

關閉正在主動匯入、編輯或同步該收藏庫的軟體。這可以降低檔案在掃描過程中發生變更的機率。確認已掛載的磁碟機運作正常,且執行掃描的帳戶具有讀取權限。權限錯誤或已中斷連線的磁碟區必須視為未掃描區域,而非沒有問題的結果。

從官方管道安裝適用於你作業系統的 ImageMagick,然後確認終端機中可以使用 magick 指令。先在幾張已知的正常影像上進行測試。ImageMagick 的指令拼寫適用於第 7 版;較舊的安裝版本可能會使用不同的指令名稱。請勿將「找不到指令」或「不支援的格式」錯誤解讀為檔案已損毀的證據。

第 3 節

執行完整掃描並擷取報告

在 macOS 或 Linux 上,Bash 可以遞迴走訪照片庫,並將失敗與警告寫入獨立的記錄檔。請將 /path/to/photo-library 和報告路徑替換為你的實際位置。請將報告保存在受測照片庫之外,以免掃描將其誤視為影像。

: > "$HOME/photo-scan-errors.log"
find "/path/to/photo-library" -type f -print0 |
while IFS= read -r -d '' file; do
  if ! magick identify +ping -regard-warnings "$file" >/dev/null 2>>"$HOME/photo-scan-errors.log"; then
    printf '%s\n' "$file"
  fi
done

終端機會印出檢查失敗的檔案路徑;記錄檔則會擷取來自 ImageMagick 的診斷訊息。由於迴圈會納入每個檔案,因此非影像檔案也可能會被回報為無法辨識的格式。如果照片庫中包含附屬檔案(sidecar files)、文件或其他非影像內容,這是正常現象。對於混合類型的封存檔,請將「未知格式」與解碼器錯誤分開處理,並在必要時將掃描範圍縮小至已知的影像副檔名。不過,副檔名篩選可能會遺漏副檔名不常見或缺少副檔名的影像。

如果記錄檔為空且未印出任何路徑,則表示在此解碼器的檢查下,該次執行沒有產生任何診斷訊息或失敗。請確認根路徑是否正確以及掃描是否已執行完畢;因拼寫錯誤、磁碟機無法存取或指令中斷導致的空白報告,並不代表檢查通過。對於龐大的照片庫,建議一次執行一個資料夾或磁碟機,並標記每份報告,以便掌握實際涵蓋的範圍。

第 4 節

安全地檢視每個標記的檔案

使用印出的路徑找到原始檔案,然後僅針對該檔案執行檢查以取得更清晰的診斷資訊:magick identify +ping -regard-warnings "/full/path/to/file.jpg"。記錄下該訊息,並與第二個檢視器或編輯器的開啟情況進行比較。檢查檔案是能完整顯示、僅能部分顯示,還是完全無法顯示。請注意,即使主要影像資料已損壞,某些應用程式可能仍會顯示內嵌的預覽圖。

在記錄中將情況分為三類:無法解碼的檔案、解碼成功但帶有警告的檔案,以及解碼成功但看起來異常不完整或有視覺損壞的檔案。這樣做能讓後續追蹤更有成效,而不是將所有警告一概而論。GIF 或 TIFF 等多幀格式可以在一個檔案中包含多張影像;如果問題僅在第一張之後才出現,請檢查相關的影格或頁面。

第 5 節

在不覆寫原始檔案的情況下選擇復原途徑

如果存在其他複本,請在嘗試修復之前進行比對。檔案雜湊值可以判斷兩個複本的內容是否完全相同:Microsoft 文件指出,相符的雜湊值可確認檔案內容完全相同,而不同的檔名或副檔名不會影響雜湊值。例如,PowerShell 的 Get-FileHash 預設使用 SHA-256。Microsoft Learn:Get-FileHash

雜湊值相符代表兩個複本在逐位元組(byte-for-byte)層面上完全一致;但這並不能證明任一複本是完好的。如果兩個複本都出現相同的失敗情況,請尋找其他備份或原始來源。如果一個通過而另一個失敗,請保留正常的複本,並僅在確認檔案確為同一張目標照片後,再取代損壞的複本。在確認替換檔案無誤之前,請保留原始標記的檔案。

如果沒有完好的複本可用,在嘗試特定格式的復原工具之前,請先為標記的檔案製作一份獨立的複本。從頭開始重新檢查復原出的檔案,在檢視器中將其開啟,並比較尺寸或其他預期特徵。ExifTool 指出其設計並非用作影像驗證器;其 -validate 檢查主要針對 JPEG 和 TIFF 提供額外驗證,因此請將其作為補充診斷工具,而非通用的通過/失敗測試標準。ExifTool FAQ:ExifTool 可以用作影像驗證器嗎?

第 6 節

確認覆蓋範圍並保存實用記錄

在認定稽核完成之前,請確認每個預期的資料夾都已納入、掃描已執行至結尾,且報告已妥善儲存。請將指出磁碟機無法讀取、權限問題、不支援格式或缺少解碼器的訊息,與確認為影像讀取失敗的記錄分開檢視。針對已還原的檔案重新執行檢查,並在影像檢視器中對收藏庫進行抽樣檢視,特別注意被標記的項目和多幀檔案。

請將掃描日期、ImageMagick 版本、掃描的資料夾以及失敗記錄與你的維護筆記保存在一起。這份記錄能讓未來的掃描具有可比性,並有助於區分舊警告與新發生的讀取問題。縝密的檢查結合了解碼器的完整讀取、針對性的視覺檢視,以及對任何替換複本的驗證;沒有單一指令可以代你做出這些判斷。

第 7 節

資料來源

相關閱讀

繼續探索這個主題