img2pdf批处理脚本

img2pdf批处理脚本

我目前有超过 10K 个文件夹。每个文件夹都有需要转换为 .pdf 文件的 .png 和 .jpg 图像。文件已经按数字顺序排列。

我正在寻找速度。我目前可以 cd 进入每个文件夹并运行

img2pdf * -o out.pdf

我在不到一秒的时间内就得到了一个完美创建的 out.pdf,即使有数百张图像。

我的最终目标是在可调用的 shell 脚本中自动执行此操作,因此每个文件夹基本上都会变成一个 .pdf 文件,其文件名与旧目录相同,如下所示

Directory001/img001.jpg
             img002.jpg
             img003.jpg
OtherDirectory/img1.png
               img2.png
               img3.png

变成

Directory001.pdf
OtherDirectory.pdf

而仅使用 img2pdf 来执行此操作,因为它是迄今为止创建 pdf 最快的方法。我有一些简单的 bash 经验,但只有简单的一行(比如将所有目录转换为 zip)。我知道这是可以做到的,但不知道从哪里开始。

答案1

要对大量文件或目录执行批处理命令,您经常使用 find -exec ,如下所示:

find . -type d -exec "img2pdf" "{}"/* -o "{}".pdf ";"

这种方法是最灵活的,但在你的情况下,你也可以使用一个简单的循环:

for i in ./*/
   do img2pdf "$i"/* "$i.pdf"
done

答案2

尝试这个

#!/bin/bash
#set -xf
TOPDIR=$PWD
dirs=($(find . -type d))
for dir in "${dirs[@]}"; do
  #echo $dir
  cd $dir
  #echo $PWD
  img2pdf --out $dir.pdf *.jpg
  cd $TOPDIR
done

相关内容