我现在有超过10K的文件夹。每个文件夹都有需要转换为.png文件的.jpg和.pdf图像。文件已经按数字顺序排列。
我在找速度。我现在可以将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来完成这个任务,但它是创建pdfs的最快方法。我有一些简单的bash经验,但只使用简单的一行程序(比如将所有目录转换为zip)。我知道这是可以做到的,但不知道从哪里开始。
发布于 2019-02-17 19:12:31
要对大量文件或目录进行批量处理,通常使用find -exec,如下所示:
find . -type d -exec "img2pdf" "{}"/* -o "{}".pdf ";"这个方法是最灵活的,但在您的情况下,您还可以使用一个简单的循环:
for i in ./*/
do img2pdf "$i"/* "$i.pdf"
done发布于 2021-10-28 17:34:27
尝尝这个
#!/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
donehttps://unix.stackexchange.com/questions/501174
复制相似问题