旅行照全混一起?用 Phockup 按日期整理,8 張為什麼只存成 6 張
重點摘要
- 本次以8張自製JPEG測試Phockup,輸出6張照片,原始8張仍保留。
- 5張有拍攝日期的不同照片分進3天,其中2張同秒照片都保留,碰名時加上編號。
- 2張內容完全相同的副本被略過,1張沒有拍攝日期的圖片放進unknown。
- 來源與輸出的6種不同內容經SHA-256集合比對完全相符;本次預覽沒有建立輸出資料夾。
- 結論: 本次8張自製照片完成日期分類,兩張同秒不同照片與一張無日期圖都保留。
- 適合: 本次驗證可用指令把有拍攝日期的JPEG複製到年、月、日資料夾。
- 不適合: 本次未測真實相機、HEIC、影片、大型照片庫或人物分類。
| 實測項目 | 結果 |
|---|---|
| 輸入照片 | 8張自製JPEG |
| 輸出照片 | 6張 |
| 有日期的不同照片 | 5張、3天 |
| 重複副本 | 2張略過 |
| 無日期圖片 | 1張進unknown |
| 原始照片 | 8張仍存在 |
| 內容核對 | 6種不同內容SHA-256集合相符 |
去年海邊、今年出遊的照片,都匯出到同一個資料夾。想找某一天的照片,只好打開縮圖慢慢翻;同一批又從記憶卡複製過一次,連重複檔也混進來。Phockup 處理的就是這類工作:讀取照片裡的拍攝日期,把檔案複製到年、月、日資料夾,並依日期時間重新命名。它是指令工具,適合願意照步驟操作、一次整理一批照片的人。
這次真的測了什麼
測試設備為 Mac mini M4 Pro,12 核心、64GB 記憶體。受測程式為 Phockup 1.13.0,來源固定在 8591be3ac6de83a1755e3aa35dd1fddba9e854e0。照片全部是自行產生的 JPEG 測試圖,不是實際旅行相簿,也沒有使用私人照片。
我們準備五張不同內容、有拍攝日期的圖,再複製其中兩張,最後加上一張沒有拍攝日期的圖,共八張。五張有日期的圖分屬三天,其中兩張刻意設為同一秒,測試會不會互相蓋掉。
| 檢查項目 | 實測結果 |
|---|---|
| 來源照片 | 8 張,執行後仍全部保留 |
| 整理後照片 | 6 張 |
| 有日期的不同照片 | 5 張,分進 3 天 |
| 完全相同的副本 | 略過 2 張,不再複製一次 |
| 沒有拍攝日期 | 1 張,放進 unknown |
| 同一秒、不同內容 | 2 張都保留,其中一張加編號 |
此外,來源有六種不同內容,我們逐一算出 SHA-256,再比對輸出照片的雜湊集合,六種內容完全相符。這表示本次沒有漏掉不同內容的圖,不代表所有相機格式、影片或大型照片庫都已驗證。
先裝好,再準備兩個位置
作者 README 提供 Mac 的 Homebrew 安裝方式:
brew tap ivandokov/homebrew-contrib
brew install phockup
這兩行是作者文件列出的方式,本次沒有在 Mac 安裝驗證。實際測試使用來源碼、Python 3.12.14、ExifTool 12.57 與 requirements.txt 的 tqdm 4.66.1。需要重現相同來源版本,可依下列順序準備 Python 與 ExifTool:
apt-get update -qq
apt-get install -y -qq python3 python3-pip git libimage-exiftool-perl
git clone https://github.com/ivandokov/phockup.git
cd phockup
git checkout 8591be3ac6de83a1755e3aa35dd1fddba9e854e0
pip install -r requirements.txt
python3 phockup.py --version
套件管理指令需要相應的安裝權限;不同系統請用作者對應的安裝方法。接著挑一小批照片副本放進來源資料夾,另外指定一個整理後的位置。兩個位置分開,先別拿唯一一份相簿試。
先預覽,再真的複製
以下示範來源在 ~/Pictures/camera,整理後放到 ~/Pictures/sorted。先執行:
python3 phockup.py ~/Pictures/camera ~/Pictures/sorted --dry-run
看輸出的日期路徑是否合理。本次預覽沒有建立目的資料夾,也沒有複製照片。不過它列出「預計複製八張」,正式執行才判斷出兩張重複,因此預覽數量不能直接當作最後檔案數。
確認後,再去掉預覽參數:
python3 phockup.py ~/Pictures/camera ~/Pictures/sorted

本次結果有 2024/07/13、2024/07/14、2025/02/01 三天。兩張同秒但不同內容的照片都留下,檔名分別為 20240713-100000.jpg 與 20240713-100000-2.jpg。少掉的是兩張內容相同的副本,來源八張仍在;預設操作是複製,本文沒有使用移動模式。
unknown 不是失敗,也不是幫你猜日期
沒有拍攝日期的 screenshot.jpg 留在 unknown,檔名保留。整理後要打開這個資料夾確認,不要把它當成可以直接丟掉的垃圾。截圖、轉傳圖片常需要另外判讀;本次只驗證一張無日期 JPEG 的行為。

我的結論是:需要把一批相機匯出照片按日期歸位,Phockup 值得試。想直接點選操作,或希望靠人物、地點自動分類的人,這次測試沒有提供那類功能的證據。第一次先預覽,用少量副本確認結果,完成後也別急著刪原檔。
專案:ivandokov/phockup;授權:MIT。來源文件與實測日期:2026 年 10 月 31 日(台灣時間)。