我有一个或多或少的随机图片文件的大文件夹,我用它来显示Wallch的桌面背景。因为我注意到有些图片的分辨率太低而不能看起来很好,所以我想摆脱低于1000像素的高度。
由于我最近开始使用Ubuntu,我怀疑这可以通过命令行中的几行代码来完成,但是我很缺乏使用它并希望避免任何过于灾难性的事情,因此之前请求帮助我自己试验。
这些图片总共大约4演出,大约3000张图片,大多以.png或.jpg结尾,但有时候是.JPG,其中一些是在子文件夹中最多3个级别。
有什么建议吗?
答案 0 :(得分:4)
find -name '*.jpg' -o -name '*.png' -exec \
convert "{}" -print "%w:%h:%d/%f\n" /dev/null \; | \
awk -vFS=: '$1<680||$2<1000{print}' | \
xargs rm
答案 1 :(得分:3)
您可以使用imagemagick及其识别命令。 http://www.imagemagick.org/script/identify.php
例如像bash函数那样以文件名作为参数,调整minX和minY
function rmImgBySize
{
minX=128
miny=96
xres=`identify -format "%[fx:w]" "$1"`
yres=`identify -format "%[fx:h]" "$1"`
if [ $xres -lt $minX ] || [ $yres -lt $minY ]
then
rm "$1"
fi
}
export -f rmImgBySize
find /path/to/basedir/with/pictures/ -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" -exec bash -c 'rmImgBySize "$0"' "{}" \;
-iname告诉名称matchins应该是caseInsensitive -o tell“或”
man identify
man find
答案 2 :(得分:0)
identify -format "%w:%h:%f\n" * | awk -F : '$2<1000 {print $3}' | xargs rm
(PS:您必须在图片目录中运行此命令)