Bash
如何使用帶有 bash 的轉換命令來調整給定目錄中所有圖像的大小?
我想將所有文件
~/somefolder/
名不是以原始大小開頭的 PNG 文件的大小調整tn_
為原始大小的 50%,並使用 atn_
作為其前綴和原始名稱重命名輸出文件。我知道有一個轉換命令並且我已經安裝了它。我想它可以通過 bash 和一些魔法來完成,但我對 Unix 很陌生。我正在使用 Mac OSX。我該怎麼辦?
這是一種方法(將其放入文件中並使用任何 POSIX shell (如
bash
or )執行它ksh
):cd ~/somefolder/ || exit 1 for f in *.png do case $f in (tn_*) continue ;; (*) convert "${f}" -resize 50%x50% "tn_${f}" ;; esac done
使用現代 shell,該
case
結構也可以用更簡潔的條件命令替換:cd ~/somefolder/ || exit 1 for f in *.png do [[ "$f" != tn_* ]] && convert "${f}" -resize 50%x50% "tn_${f}" done
(但此程式碼來自記憶體且未經測試,因此請檢查
convert
有關實際調整大小語法的命令,並首先在一些範例文件的範例目錄中嘗試它。)