我在当前目录中有这样的子文件夹:
ls
apples bananas oranges potatoes
每个子文件夹包含不同数量的 .jpg 图像。
cd apples
ls
000000522638.jpg 000000522713.jpg 000000522751.jpg
我从不同的来源下载了自定义的 python 程序,它可以修改图像,并将输入图像路径和输出图像路径作为参数:
python modifyImage.py path/to/input/image.jpg path/to/output/image.jpg
问题陈述:
我想将此程序应用于给定子目录(苹果、橙子等)中的每个图像。有很多文件夹和图像具有任意名称,因此我无法手动执行此操作。可能的解决方案是,首先找到所有 *.jpg 图像路径,并将它们作为参数发送到 python 脚本。
我编写了脚本来仅在当前目录中更新 *.jpg 文件,如下所示
for file in *.jpg
do
python modifyImage.py /"$file" /"$file"
done
但我需要上面的脚本使用子目录。 请帮忙。
答案1
从超级用户它们告诉我们如何循环遍历子目录:
for d in */ ; do
echo "$d"
done
使用此参考,您可以使用嵌套for
循环:
for d in */ ; do
for file in "$d"/*.jpg
do
python modifyImage.py /"$file" /"$file"
done
done