批量转换分布在数十个文件夹中的多个特定图像

批量转换分布在数十个文件夹中的多个特定图像

我有一个 JPG 文件列表,每个文件位于我的命令行服务器上的不同文件夹中,我需要将它们转换为 PNG。

我知道使用 mogrify 逐个转换它们的简单命令。但我有大约 300 张不同名称的图像分布在不同的文件夹中,如下所示:

/home/user/dfp/app/roundtable/wp-content/uploads/2022/06/play.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2021/02/turn.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2020/01/up.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2022/09/down.jpg
/home/user/dfp/app/roundtable/wp-content/uploads/2021/01/left.jpg
etc etc

每个目录中还有成千上万张其他图像,我根本不想改变它们。只是我列表中的特定文件。

有没有一种简单的工具可以批量转换我拥有的图像列表?我确实有一个图像列表,如上例所示,在 .txt 文件中。

答案1

您可以使用简单的 shell 循环来读取和处理列表文件中的文件名。bash例如,在 shell 中:

while IFS= read -r file; do
  # your mogrify command on "$file"
done < path/to/listfile.txt

#!/bin/bash您可以在交互式 bash 命令行中运行它,也可以作为顶部带有 shebang 的脚本运行它。

相关内容