我有一个bash脚本,使用ImageMagick从文件夹 / pictures / 制作缩略图,并将它们放到文件夹 / thumbnails / :
#!/bin/sh cd /pictures/ for pic in *.jpg; do convert $pic -strip -quality 80 -thumbnail 225x150 /thumbnails/$pic; done
但我希望该脚本能够跳过已在 / thumbnails / 文件夹中的图片。我怎么能这样做?
答案 0 :(得分:3)
#!/bin/sh
cd /pictures/
for pic in *.jpg;
do
if [ ! -f /thumbnails/$pic ]; then
convert $pic -strip -quality 80 -thumbnail 225x150 /thumbnails/$pic;
fi
done
在if
语句中,-f
标志检查文件是否存在,!
否定条件。总而言之,if
语句验证该文件尚不存在。
答案 1 :(得分:3)
由于世界需要更多Makefile,请将以下内容放入名为Makefile
的文件中,其中“↹”是文字制表符:
SRC := /pictures/
DEST := /thumbnails/
PICTURES := $(wildcard $(SRC)*.jpg)
THUMBNAILS := $(patsubst $(SRC)%,$(DEST)%,$(PICTURES))
thumbnails: $(THUMBNAILS)
$(DEST)%.jpg: $(SRC)%.jpg
↹convert $< -strip -quality 80 -thumbnail 225x150 $@
然后您可以将其调用为:
make thumbnails
如果您希望它使用多个核心,您可以使用-j
标志告诉它。
make -j4 thumbnails