我在一个目录结构中有原始图像,如下所示:
./Alabama/1.jpg
./Alabama/2.jpg
./Alabama/3.jpg
./Alaska/1.jpg
...the rest of the states...
我想将所有原始图像转换为缩略图,以便可以在网站上显示它们。经过一番挖掘/试验,我想出了以下 Linux 命令:
find . -type f -iname '*.jpg' | sed -e 's/\.jpg$//' | xargs -I Y convert Y.jpg -thumbnail x100\> Y-small.jpg
它递归地在我的子目录中查找所有 jpg 图像,从中删除文件类型 (.jpg),以便我以后可以重命名它们,然后将它们制作成缩略图并在文件类型前附加“-small”重命名它们。
它适用于我的目的,但它有点复杂,而且不是很健壮。例如,我不确定如何在文件名的开头插入“small-”(so ./Alabama/small-1.jpg
)。
问题:
- 有没有更好、更强大的方法从位于多个子目录中的图像创建缩略图?
- 我可以使现有命令更健壮吗(例如,但在保存
sed
之前使用重命名输出的缩略图 - 基本上修改 Y-small.jpg 部分)。