如何以递归方式查找图像并将其复制到具有新名称的目录中?例如:
folder
- subfolder1
- a.jpg
- subfolder2
- b.jpg
- subfolder3
- c.jpg
所以我可以得到:
folder
- subfolder1
- a.jpg
- a-copy.jpg
- subfolder2
- b.jpg
- b-copy.jpg
- subfolder3
- c.jpg
- c-copy.jpg
理想情况下,我希望将复制的图像的大小调整为最大 50px 宽度(比原始图像更小)。
有任何想法吗?
答案1
首先检查echo
包含以下内容(从包含目录的父目录中运行,或者在下面folder
提供/full/path/to/folder/*/*.jpg
):
for f in folder/*/*.jpg
do
echo convert -geometry 50x "$f" "${f%.*}-copy${f//*./.}"
done
...如果对命名输出满意,请删除echo
并再次运行,如下所示:
for f in folder/*/*.jpg
do
convert -geometry 50x "$f" "${f%.*}-copy${f//*./.}"
done
...进行实际的调整大小。
要包含其他文件扩展名(区分大小写),请将它们添加到括号扩展中,如folder/*/*.{jpg,JPG,png,PNG}
等。
注意对于图像调整大小,你需要convert
在您的系统上...另外,请注意上面的convert -geometry 50x ...
行将放大宽度小于 50 的图像,您可能需要考虑扩大它或使用例如convert -resize 20% ...
。