Skip to main content

一行指令將 PNG 轉換成 WebP

指令

array=($(ls *.png)); for key in "${array[@]}"; do cwebp $key -o $key.webp; done && mv *.webp ./webp

解釋

array=($(ls *.png));
  • 將 ls 的結果丟到 array 去
  • 這個是比較不太好的做法,為什麼不太好這裡有解釋,主要是可能會遇到 ambiguous 的狀況
for key in "${array[@]}"; do cwebp $key -o $key.webp; done
  • ${array[@]} 是把 array 的東西全部枚舉出來
  • 剩下就是 for-loop 和變數的寫法,全部丟給 cwebp 處理
&& mv *.webp ./webp
  • 只是把轉換後的 WebP 檔案丟到另外一個資料夾

備註

  • 需要安裝 libwebp,請洽各大 Linux 發行版確定有沒有這套 library
  • Array 的寫法為 bash,確定最原始的 sh 是不支援的,zsh 應該支援但沒測試過,其他 shell 也沒測試過