我想将所有~/somefolder/
文件名不以原始大小开头的PNG 文件的大小调整为原始大小的 50%,并使用 a作为前缀和原始名称tn_
重命名输出文件。tn_
我知道有一个转换命令并且我已经安装了它。我想这可以通过 bash 和一些魔法来完成,但我对 Unix 还很陌生。我使用的是 Mac OSX。
我应该怎么办?
答案1
这是一种方法(将其放入文件中并使用任何 POSIX shell 执行,例如bash
或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
有关实际调整大小语法的命令,并首先在一些示例目录中的几个示例文件上尝试它。)