如何使用 img2pdf 递归地将每个文件夹中的所有 JPG 转换为一个 PDF?

如何使用 img2pdf 递归地将每个文件夹中的所有 JPG 转换为一个 PDF?

我有三个级别的文件夹,如主文件夹、子 1 和子 2。我的主文件夹有很多子 1 文件夹,而子 1 有很多子 2 文件夹,里面有 JPG 图像。

我使用此命令将 JPG 文件从主文件夹复制到其父子文件夹 1。

find . -type f -name "*.jpg" -exec sh -c 'for p; do
  cp "$p" "${p%/*/*}"
done' _ {} +

现在我必须将我的主文件夹中的每个子 1 文件夹内的所有 jpg 转换为一个 pdf 文件,因此子 1 中会有我所有复制的 jpg 以及转换后的 pdf(pdf 名称应为文件夹名称,例如:子 1)。转换完成后,我必须仅删除子 1 文件夹内的复制的 jpg(而不是原始 jpg),因此会有许多子 2 文件夹和一个 pdf 文件。

我正在使用 img2pdf 库来转换我的图像。我尝试了下面的命令,但它不起作用,我找不到任何解决方案。现在我该如何让它工作?

find . -name '*.jpg' -type f -exec bash -c 'img2pdf *.jpg -o "${PWD##*/}".pdf' {} + \

答案1

这对我有用:

find . -name '*.png' -type f -exec bash -c 'name={} &&  img2pdf {} -o "${name/.png/.pdf}" ' \;

相关内容