Bash

如何使用帶有 bash 的轉換命令來調整給定目錄中所有圖像的大小?

  • March 30, 2015

我想將所有文件~/somefolder/名不是以原始大小開頭的 PNG 文件的大小調整tn_為原始大小的 50%,並使用 atn_作為其前綴和原始名稱重命名輸出文件。我知道有一個轉換命令並且我已經安裝了它。我想它可以通過 bash 和一些魔法來完成,但我對 Unix 很陌生。我正在使用 Mac OSX。

我該怎麼辦?

這是一種方法(將其放入文件中並使用任何 POSIX shell (如bashor )執行它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有關實際調整大小語法的命令,並首先在一些範例文件的範例目錄中嘗試它。)

引用自:https://unix.stackexchange.com/questions/193295