Mac 终端:循环和 ImageMagick
Mac Terminal: Looping & ImageMagick
我有几个文件夹,里面有图片,类似这样的结构:
parent-folder
01
02
03
我想使用 ImageMagick 转换它们。我可以轻松做到这一点:
cd parent-folder/01
convert *.jpg output.pdf
效果很好,但我有 90 多个文件夹 -- 这非常耗时。
有没有办法遍历每个文件夹,将 imagemagick 命令应用于每个文件夹?
我开始是这样处理的:
cd parent-folder
for d in *;
do convert *.jpg output.pdf;
done
但我没有运气。我知道上面的代码不起作用,因为我仍在父文件夹中。有什么想法是解决这个问题的最佳方法吗?我也对其他解决方案持开放态度。
谢谢!
我使用 bash find
命令在我的 Mac 桌面上名为 testing
的文件夹中查找所有一级目录,以下对我有用。然后遍历每一个。文件夹结构为:
testing
test1
lena.jpg
mandril3.jpg
zelda1.jpg
test2
lena.jpg
mandril3.jpg
zelda1.jpg
这是代码:
cd desktop
for folder in `find "testing" -type d -mindepth 1 -maxdepth 1`; do
echo "$folder"
convert ${folder}/*.jpg ${folder}/output.pdf
done
testing/test1
testing/test2
生成的文件夹结构现在在每个文件夹结构中显示 output.pdf。
testing
test1
lena.jpg
mandril3.jpg
output.pdf
zelda1.jpg
test2
lena.jpg
mandril3.jpg
output.pdf
zelda1.jpg
我有几个文件夹,里面有图片,类似这样的结构:
parent-folder
01
02
03
我想使用 ImageMagick 转换它们。我可以轻松做到这一点:
cd parent-folder/01
convert *.jpg output.pdf
效果很好,但我有 90 多个文件夹 -- 这非常耗时。
有没有办法遍历每个文件夹,将 imagemagick 命令应用于每个文件夹?
我开始是这样处理的:
cd parent-folder
for d in *;
do convert *.jpg output.pdf;
done
但我没有运气。我知道上面的代码不起作用,因为我仍在父文件夹中。有什么想法是解决这个问题的最佳方法吗?我也对其他解决方案持开放态度。
谢谢!
我使用 bash find
命令在我的 Mac 桌面上名为 testing
的文件夹中查找所有一级目录,以下对我有用。然后遍历每一个。文件夹结构为:
testing
test1
lena.jpg
mandril3.jpg
zelda1.jpg
test2
lena.jpg
mandril3.jpg
zelda1.jpg
这是代码:
cd desktop
for folder in `find "testing" -type d -mindepth 1 -maxdepth 1`; do
echo "$folder"
convert ${folder}/*.jpg ${folder}/output.pdf
done
testing/test1
testing/test2
生成的文件夹结构现在在每个文件夹结构中显示 output.pdf。
testing
test1
lena.jpg
mandril3.jpg
output.pdf
zelda1.jpg
test2
lena.jpg
mandril3.jpg
output.pdf
zelda1.jpg