有一些图片在子文件夹中,需要限制它们的大小(最大宽度为720或最大高度为1100)。它们的文件名必须保留。起始代码如下:
for img in *.jpg; do filename=${img%.*}; convert -resize 720x1100\> "$filename.jpg" "$filename.jpg"; done
这段代码可以在每个目录中运行,但是有许多子文件夹包含这些图片。尝试使用 find . -iname "*.jpg" -exec cat {}
但它没有按预期创建列表。
这个也不起作用:
grep *.jpg | while read line ; do `for img in *.jpg; do filename=${img%.jpg}; convert -resize 720x1100\> "$filename.jpg" "$filename.jpg"`; done
这也不行:
find . -iname '*jpg' -print0 | while IFS= read -r -d $'\0' line; do convert -resize 720x1100\> $line; done
出现错误信息 “convert:未定义图像。” 然后:
find . -iname '*.jpg' -print0 | xargs -0 -I{} convert -resize 720x1100\> {}
让我收到了相同的错误信息。
shopt -s globstar; for img in ** / * .jpg; do ...; done
。 - pjhfind . -type d -exec bash -c 'cd "$0" || exit; shopt -s nullglob; f=( *.jpg ); ((${#f[@]})) && echo convert -resize 640x1100\> "${f[@]}" "${f[@]}"' {} \;
,基于 http://stackoverflow.com/questions/23311384/execute-imagemagick-convert-in-subfolders-with-bash-script - motorbaby'**/*.jpg'
: No such file or directory的错误。 - motorbaby