DevStore小编专栏

shell 批量压缩指定目录及子目录内图片

用户上传的图片,一般都没有经过压缩,造成空间浪费。因此需要编写一个程序,查找目录及子目录的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理。

 

代码如下:

[plain]  view plain copy
  1. #!/bin/bash
  2. # 查找目录及子目录的图片文件(jpg,gif,png),将大于某值的图片进行压缩处理
  3. # Config
  4. folderPath='/home/fdipzone/photo'   # 图片目录路径
  5. maxSize='1M'    # 图片尺寸允许值
  6. maxWidth=1280   # 图片最大宽度
  7. maxHeight=1280  # 图片最大高度
  8. quality=85      # 图片质量
  9. # 压缩处理
  10. # Param $folderPath 图片目录
  11. function compress(){
  12. folderPath=$1
  13. if [ -d "$folderPath" ]; then
  14. for file in $(find "$folderPath" \( -name "*.jpg" -or -name "*.gif" -or -name "*.png" \) -type f -size +"$maxSize" ); do
  15. echo $file
  16. # 调用imagemagick resize图片
  17. $(convert -resize "$maxWidth"x"$maxHeight" "$file" -quality "$quality" "$file")
  18. done
  19. else
  20. echo "$folderPath not exists"
  21. fi
  22. }
  23. # 执行compress
  24. compress "$folderPath"
  25. exit 0

shell 批量压缩指定目录及子目录内图片相关推荐

  1. linux批量修改压缩图片大小,linux shell批量压缩某个目录下图片大小

    linux shell批量压缩某个目录下图片大小 #!/bin/sh read -p "Input Path:" SPATH maxsize=$((1024*200)) FILEL ...

  2. 【shell】shell下获取指定目录及子目录下的所有文件或指定文件

    Date:2018.7.8 shell下获取指定目录下的所有文件或指定文件: 方法一: funtion getAllFilesfor files in `find $1 -name "*.t ...

  3. java批量提取文件夹名称_bat 批量提取指定目录下的文件名

    bat 批量提取指定目录下的文件名 下面是批量获取指定目录下的文件名的核心代码 @echo off echo text input set input= set /p input=: echo %in ...

  4. 【原创】C# 递归获取指定目录的子目录及其所有文件

    public static void FindFile(string dirPath) //参数dirPath为指定的目录     { //在指定目录及子目录下查找文件,在listBox1中列出子目录 ...

  5. php定时删除目录,shell定时删除指定目录下的文件

    contab -e 10 */12 * * * sh /usr/local/apache2/htdocs/cakephp/ebook/webroot/php/delete_big_log.sh 代码: ...

  6. bat 批量提取指定目录下的文件

    如下是批量获取指定目录下的文件名. @echo off echo text inputset input= set /p input=: echo %input% is input cd %input ...

  7. 打印 指定目录下和子目录下的的所有.java文件的路径. (使用FileFilter过滤器)

    1 package test; 2 /* 3 * 打印 指定目录下和子目录下的的所有.java文件的路径. 4 * */ 5 import java.io.*; 6 import java.util. ...

  8. 使用Python批量替换指定目录所有文件中的指定文本

    使用Python批量替换指定目录所有文件中的指定文本 # -*- coding: utf-8 -*- import os from = "aaa" #替换为什么内容,可以是多行 t ...

  9. 执行shell脚本进入指定目录

    在linux环境下,常有通过shell脚本进入指定目录的操作,例如有一段脚本chdir.sh: [plain]  view plain copy #!/bin/sh cd /home/user/Dow ...

最新文章

  1. 1.1.3 以类为单位的编程思想
  2. armbian安装图形桌面_必看贴:Centos7安装Xrdp远程桌面服务
  3. SAP 系统中图标代码的查找
  4. maven中spring-boot-dependencies变量名冲突
  5. 【php7扩展开发三】ini配置
  6. 树的合并(ybtoj-树上dp)
  7. 1247 排排站 USACO(查分+hash)
  8. Zbrush 2019有哪些新功能需要你的探索,赶紧来看看
  9. 有关DataVisualization类组件的研究——Silverlight学习笔记[43]
  10. H3C设备之 EASY NAT
  11. C语言中的字符串函数
  12. paip.盘古汉字转拼音组件库使用总结
  13. C++11的std::declval与decltype
  14. 将ttc改为otf_几种字体格式的区别otf/ttf/ttc格式字体的区别
  15. Spring学习Ioc
  16. ucfirst() 函数
  17. php怎么查看当前地址,php二分法在IP地址查询中的应用
  18. 灭霸打了一个响指,我就学会了C语言的「分支与循环语句」
  19. 基于微信小程序的菜谱管理系统(菜谱小程序设计后台JavaSSM)
  20. Python制作简易计算器

热门文章

  1. IDEA 运行 Maven 项目
  2. 将txt文本由utf-8转gbk
  3. Qt creator在发布程序时提示0xc000007b
  4. 将oracle中数据转化为汉字,将Oracle数据库中的“数字”对应成“汉字”
  5. Rect、RectF矩形类
  6. 【C语言】扫雷小游戏(扫雷的递归判断展开)
  7. elsa-workflows工作流持久化及通过MVC Page页面发起及完成
  8. 红米note9和华为nova8SE哪个好
  9. MySQL学习之路(八):MySQL创建数据表
  10. linux hive根据分区删除数据的两种方式