slackware批量修改图片大小
李顺亮
2013年12月13日
很久没有与图片打交道了,今日偶一为之,居然发现自己不会批量修改图片大小了。只好借助强大的google,果然厉害立马有了答案。可是,在图片所在目录里进终端执行命令:
find ./ -name '*.jpg' -exec convert -resize 600x480 {} {} ;
想用这种最简单的方法,把大量照片变到指定尺寸,却发现终端老是报错,问题出在哪里呢?
很多教程介绍要先安装imagemagick,难道是slackware没有自带这个可以convert的东西?可是,明明终端里报:
find: 遗漏“-exec”的参数
那也就是说,slackware系统里已经有了convert这个东西。到系统搜索里一查,果然有convert。看来,问题不是出在这里。
再查解决办法,发现有的系统要求更高,要在后面加上引号,单引号、双引号都可以。
于是,试着加起了引号
“{} {} ; ”
可是,仍然不行。
重新再来,发现如下命令
for jpgfile in `ls` ; do convert $jpgfile -resize 600x480 new_$jpgfile ; done
在终端里一执行,成功了。可是,它不会自动覆盖原文件,而是另行建立了新文件。
看来,还是原来那个直接覆盖原文件的命令更简洁,那会不会是原来那个命令本身出问题呢?一找,果然问题出在这里。
现在,我们执行:
find ./ -name '*.jpg' -exec convert -resize 600x480 {} {} \;
总算搞定,一切如愿。
终于恍然大悟,原来在使用-exec参数时,必须以“\;”结尾,否则,系统会提示“find遗漏-exec参数”,命令将无法执行。
可是,这我原来是知道的啊,真是好记性不如烂笔头。 |