Bash脚本 - 如何跳过文件夹中已有的图片?

时间:2011-11-03 02:01:29

标签: bash

我有一个bash脚本,使用ImageMagick从文件夹 / pictures / 制作缩略图,并将它们放到文件夹 / thumbnails /

#!/bin/sh
cd /pictures/
for pic in *.jpg;
do
    convert $pic -strip -quality 80 -thumbnail 225x150 /thumbnails/$pic;
done

但我希望该脚本能够跳过已在 / thumbnails / 文件夹中的图片。我怎么能这样做?

2 个答案:

答案 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