以下可以找到目錄底下所有七天內建立的 jpeg 檔案,然後用 GraphicsMagick 重新壓縮一次:
su -m nobody -c "find photos/ -type f -name '*.jpg' -newerct '7 day ago' -print -exec gm convert {} {} \;"
之前有一個 57G 的目錄,跑完剩下 27G,省下了 50% 的空間,我猜那個目錄底下的檔案,本來是用 PHP 的 GD 自己壓縮的,不過即是本來就是用 GraphicsMagick 處理的圖形檔,跑了之後,還是會變小。
實例:
[root@xxxx]/home/mini(112): ls -al ./attachment/201408/18/201856_1408357882fq1M.jpg.thumb.jpg -rw-r--r-- 1 nobody nogroup 2129 8 18 18:31 ./attachment/201408/18/201856_1408357882fq1M.jpg.thumb.jpg [root@club1069]/home/mini(113): gm convert ./attachment/201408/18/201856_1408357882fq1M.jpg.thumb.jpg ./attachment/201408/18/201856_1408357882fq1M.jpg.thumb.jpg [root@xxxx]/home/mini(114): ls -al ./attachment/201408/18/201856_1408357882fq1M.jpg.thumb.jpg -rw-r--r-- 1 nobody nogroup 1816 8 18 19:26 ./attachment/201408/18/201856_1408357882fq1M.jpg.thumb.jpg
原先是 2129 bytes 的 jpeg 檔案,處理後,剩下 1816 bytes,將近 20%。
我猜是新版本的 GraphicsMagick,或許會有比較厲害的演算法,所以又可以省下一些空間,例如mozjpeg,號稱可以讓 jpeg 更小。