我有很多想用pngquant處理的圖像。他們是在一個漂亮的深目錄結構進行組織,所以它是非常耗時的手動cd
到到每一個目錄,然後運行pngquant -ext .png -force 256 *.png
用pngquant遞歸批處理文件
有沒有辦法讓這個命令在每個*在內的每個目錄運行巴紐目前的一個,儘可能多的層深?
我有很多想用pngquant處理的圖像。他們是在一個漂亮的深目錄結構進行組織,所以它是非常耗時的手動cd
到到每一個目錄,然後運行pngquant -ext .png -force 256 *.png
用pngquant遞歸批處理文件
有沒有辦法讓這個命令在每個*在內的每個目錄運行巴紐目前的一個,儘可能多的層深?
如果你有目錄的深度有限,並沒有太多的文件,那麼懶惰的解決方案:
pngquant *.png */*.png */*/*.png
標準溶液:
find . -name '*.png' -exec pngquant --ext .png --force 256 {} \;
和多核版本:
find . -name '*.png' -print0 | xargs -0 -P8 -L1 pngquant --ext .png --force 256
其中-P8
定義了CPU的數量,並且-L1
定義了一個在一個pngquant調用中處理圖像的數量(我使用-L4
用於具有大量小圖像的文件夾以節省進程啓動時間)。
隨着fish shell可以運行在你的項目目錄
pngquant **.png
的根將產生與像-or8.png
或-fs8.png
擴展新文件以下。
如果要覆蓋現有文件,可以使用
pngquant **.png --ext .png --force
什麼操作系統是你嗎? – Manish 2012-03-10 19:30:47