仅当缩略图不存在时才生成缩略图的脚本

仅当缩略图不存在时才生成缩略图的脚本

我有一个工作脚本,可以为文件夹中的所有 pdf 文件生成缩略图(使用 Image Magic):

for f in *.pdf; do convert -thumbnail 250x200 "$f"[0]"_thumb_wd_${f%.pdf}.jpg"; done

我该如何调整它来检查“_thumb_wd_+”f“+.jpg”是否存在?所以只有当它不存在时我才能生成缩略图!

答案1

您可以使用if条件构造根据某些条件执行操作,例如某事物是否存在。在您的例子中,您需要将操作段放在条件内if-then

  if ! [[ -f "_thumb_wd_${f%.pdf}.jpg" ]]; then
    convert -thumbnail 250x200 "$f"[0]"_thumb_wd_${f%.pdf}.jpg"
  fi

[[是一个bash关键字,我们用它来检查(-f)文件是否_thumb_wd_${f%.pdf}.jpg存在且是否为常规文件。!否定操作,因此convert只有文件不存在时才会运行。

因此,你的最终脚本是:

#!/bin/bash
for f in *.pdf; do
  if ! [[ -f "_thumb_wd_${f%.pdf}.jpg" ]]; then
    convert -thumbnail 250x200 "$f"[0]"_thumb_wd_${f%.pdf}.jpg"
  fi
done

相关内容