1. 百科知识问答首页
  2. 经验知识

linux批量压缩图片文件,宝塔面板2步完成压缩

为什么小编突发奇想要压缩图片呢!因为小编发现第一次浏览网站的时候非常慢!(第二次速度快那是因为在用户的设备上面有缓存了!)。其实不用排查就知道因为首页的幻灯片图片,栏目推荐与头条的封面图片都很多!而部分用户直接用手机上传图片非压缩就直接上传了!苦啊!这对于本服务器是个极大的考验!毕竟小编用的服务器带宽不是很高!只能想想从压缩图片开始了!那么就开始操作牛刀!开始压缩图片吧!结果每张图片整整减少了百分之50。

linux

这么优质的方法就跟有需要的讲解下方法吧!那么接下来就开启讲解之路了哦!

本教程以宝塔面板为例!首先登录服务器,先看下文件大小,哪些占用比较大。(测试系统为 centos 7.9)

如果不熟悉linux,可优先做系统快照或镜像

1、安装jpegoptim压缩(用于压缩jpg),optipng(用于压缩png),参数很多详细度年jpegoptim参数即可

  1. yum install jpegoptim
  1. yum install optipng

上面两条命令分别执行,显示安装成功后继续用命令开始批量压缩图片, 本站使用的命令为如下

  1. find /www/wwwroot/网站目录名/d/file -name ‘*.jpg’ | xargs jpegoptim –strip-all –max=50%
  2. find /www/wwwroot/网站目录名/d/upload -name ‘*.jpg’ | xargs jpegoptim –strip-all –max=50%

那么如何在压缩率上面指定尺寸大小呢,接下来命令如下:

  1. find /www/wwwroot/网站目录/d/file -name ‘*.jpg’ | xargs jpegoptim –strip-all –max=50%
  2. find /www/wwwroot/网站目录/d/file -name ‘*jpeg’ | xargs jpegoptim –strip-all –max=50%

那么如何排除100Kb以下的图片呢

  1. find /www/wwwroot/网站目录/d/file -name ‘*jpg’ -size +100k | xargs jpegoptim –strip-all –max=50%
  2. find /www/wwwroot/网站目录/d/file -name ‘*jpeg’ -size +100k | xargs jpegoptim –strip-all –max=50%

如果你想指定只处理当天的JPEG图片,你可以在find命令中添加一个时间条件。find命令的-newer选项可以用来检查文件的最后修改时间。以下是一个示例命令:

  1. find /www/wwwroot/网站目录/d/file -name ‘*jpeg’ -size +100k -newermt $(date +%Y-%m-%d) | xargs jpegoptim –strip-all –max=50%
  2. find /www/wwwroot/网站目录/d/file -name ‘*jpg’ -size +100k -newermt $(date +%Y-%m-%d) | xargs jpegoptim –strip-all –max=50%

在上述命令中,-newermt $(date +%Y-%m-%d)表示只选择最后修改时间在当前日期(不包括今天之前的时间)的文件。这样可以确保只处理当天的JPEG图片。请注意,$(date +%Y-%m-%d)表示当前日期,如果你想指定其他日期,可以相应地调整日期格式和日期值。

如果指定一个星期的呢,那就这么操作

  1. find /www/网站目录/d/file -name ‘*jpg’ -size +100k -newermt $(date -d “1 week ago” +%Y-%m-%d) -print0 | xargs -0 jpegoptim –strip-all –max=50%
  1. find /www/wwwroot/www.851w.com/d/file -name ‘*jpeg’ -size +100k -newermt $(date -d “1 week ago” +%Y-%m-%d) -print0 | xargs -0 jpegoptim –strip-all –max=50%

那么如何压缩png的图片呢

  1. find /www/wwwroot/网站目录/d/file -name ‘*.png’ | xargs optipng -o7

find命令的参数解释如下:
/www/wwwroot/www.851w.com/d/file:这是要查找的目录。
-name ‘*jpeg’:此选项表示查找文件名以.jpeg结尾的文件。
-size +100k:此选项表示查找文件大小大于100KB的文件。
-newermt $(date -d “1 week ago” +%Y-%m-%d):此选项表示查找修改时间晚于”一周前”的文件。这里的”一周前”是相对于当前日期计算的。
-print0:此选项使得find命令将找到的文件名以NULL字符(\0)作为分隔符输出,这样可以处理文件名中包含空格或其他特殊字符的情况。
| xargs -0 jpegoptim –strip-all –max=50%:这部分将find命令的输出作为xargs命令的输入,并执行jpegoptim命令来优化找到的JPEG文件。

上述命令会找到指定目录下所有PNG图片,并使用optipng进行压缩。-o7参数表示使用最高的优化级别。你可以根据需要调整优化级别。

实际效果直接压缩一半大小,与设置的压缩率基本一致,

实际项目中,按照保证清晰度和尺寸需求原则,越小越好,设置对应的压缩比即可。压缩执行效率以服务器的优劣有所差异。

实测效果还是不错的!基本能达到设定的百分之50压缩要求!给图片极大的廋身了!同时也减少了磁盘占用空间!小水管小磁盘的福利专属!

注:png压缩会很慢,执行命令时请把网站目录改为你自己的,切记切记!

本作品(图文、音视频)由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系 yu.jianchun@qq.com