首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >img2pdf批处理脚本

img2pdf批处理脚本
EN

Unix & Linux用户
提问于 2019-02-17 15:00:35
回答 2查看 1.5K关注 0票数 0

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

我在找速度。我现在可以将cd放入每个文件夹并运行。

代码语言:javascript
复制
img2pdf * -o out.pdf

我在不到一秒钟的时间内就得到了一个完美的out.pdf,即使有几百张图片。

我的最终目标是在一个可以调用的shell脚本中自动化这一点,因此每个文件夹基本上被转换为一个文件名与旧目录相同的.pdf文件,如下所示

代码语言:javascript
复制
Directory001/img001.jpg
             img002.jpg
             img003.jpg
OtherDirectory/img1.png
               img2.png
               img3.png

变成了

代码语言:javascript
复制
Directory001.pdf
OtherDirectory.pdf

虽然只使用img2pdf来完成这个任务,但它是创建pdfs的最快方法。我有一些简单的bash经验,但只使用简单的一行程序(比如将所有目录转换为zip)。我知道这是可以做到的,但不知道从哪里开始。

EN

回答 2

Unix & Linux用户

发布于 2019-02-17 19:12:31

要对大量文件或目录进行批量处理,通常使用find -exec,如下所示:

代码语言:javascript
复制
find . -type d -exec "img2pdf" "{}"/* -o "{}".pdf ";"

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

代码语言:javascript
复制
for i in ./*/
   do img2pdf "$i"/* "$i.pdf"
done
票数 0
EN

Unix & Linux用户

发布于 2021-10-28 17:34:27

尝尝这个

代码语言:javascript
复制
#!/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
票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/501174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档