将图像转换为子目录中的pdf

时间:2014-06-05 04:18:21

标签: linux bash imagemagick-convert

我有一堆带有图像的子文件夹。我试图使用目录名称作为pdf名称递归地将它们转换为pdf文件。在一些谷歌搜索的帮助下,我尝试使用这个脚本写道:

#!/bin/bash

for D in `find . -type d` do
  convert *.jpg ${PWD##*/}.pdf
end

它不起作用。我怎样才能让它发挥作用?

每个文件夹中都有几个.JPG,其中包含数字01-10等。使用convert *.jpg name.pdf将所有图像转换为一个pdf文件。我想制作一个脚本来执行此操作,并使PDF文件具有目录名称。

我还希望脚本能够获取转换后的pdf并将其移动到父目录中。

3 个答案:

答案 0 :(得分:4)

此处while循环更合适。试试这个:

find . -type d | while read d; do convert "${d}"/*.jpg ./"${d##*/}.pdf"; done
  • find将返回当前目录中的所有目录。
  • while read d会将每个目录路径读入变量$d
  • convert ${d}/*.jpg对目录$d中的所有.jpg图片执行转换。
  • ./${d##*/}.pdf仅使用目录名替换整个目录路径,附加.pdf,并确保在父目录中创建PDF文件。

答案 1 :(得分:1)

感谢@savanto的回答。我根据自己的需要修改了一下。

读取目录子目录中的文件。将一种文件类型转换为不同的文件类型。命名该文件并将其保存到目录中(使用OSX 10.10,终端bash-3.2)。

cd /parent_directory 
find . -type d | while read d; do mogrify -format png *.eps; done
find . -name '*.eps' -execdir mogrify -format png {} \;

答案 2 :(得分:0)

易:

find path/to/images -iname "*.jpg" | xargs -I %this convert %this %this.pdf

非常简单干净!