懶惰之最|GitHub 實測

旅行照全混一起?用 Phockup 按日期整理,8 張為什麼只存成 6 張

2026-10-31|專案:ivandokov/phockup|Markdown 版

重點摘要

  • 本次以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

實測整理結果:日期資料夾、同秒照片編號與 unknown

本次結果有 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 日(台灣時間)。

測試設備:Mac mini M4 Pro(12 核、64GB)。內容依實際執行結果撰寫,數據為撰寫當時的實測值。

← 所有實測