Bash 脚本对所有子目录中的所有图像运行 python 脚本

Bash 脚本对所有子目录中的所有图像运行 python 脚本

我在当前目录中有这样的子文件夹:

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

相关内容