`
tianxiataguo
  • 浏览: 14601 次
文章分类
社区版块
存档分类
最新评论

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

阅读更多

DevStore小编专栏

 

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

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

 

代码如下:

 

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

相关推荐

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

    本文将详细介绍如何使用shell脚本批量压缩指定目录及子目录内的图片,以节省存储空间。这种方法适用于那些需要处理大量用户上传图片的Web应用或者服务,以降低服务器存储成本。 首先,我们需要了解一些基本的shell...

    360批量增加DEDE子目录助手

    【标题】"360批量增加DEDE子目录助手"涉及到的是一个针对织梦内容管理系统(DedeCMS)的辅助工具。织梦内容管理系统是一款基于PHP+MySQL开发的开源CMS,广泛应用于网站建设和管理。这款360批量增加DEDE子目录助手...

    Linux下rar及zip压缩包中批量替换某文件脚本

    1. 遍历指定目录或递归遍历所有子目录,查找所有.zip文件。 2. 使用`unzip`命令提取压缩包中的指定文件到临时目录。 3. 替换临时目录中的目标文件。 4. 使用`zip`命令重新压缩修改后的文件,覆盖原有的.zip文件。 `...

    图片批量压缩大小脚本分享

    在IT行业中,图片批量压缩是一项常见的任务,尤其是在网站优化、数据存储或移动应用开发中。为了提高效率,人们经常编写脚本来自动化这个过程。这里,我们将会深入探讨一个使用ImageMagick工具进行图片批量压缩的...

    调用压缩软件压缩PictureBox控件中图片(VB6.0代码编写)

    在VB6.0环境下,有时候我们需要对PictureBox控件...这种方法不仅适用于单个图片,还可以扩展到多个图片的批量压缩,只需在命令行参数中添加更多的文件路径即可。在实际应用中,可以根据具体需求进行代码的优化和定制。

    Vd.zip_Linux shell_zip

    2. **压缩目录**:`zip -r filename.zip directory`,递归地压缩directory目录及其所有子目录和文件。 3. **查看压缩包内容**:`unzip -l filename.zip`,列出压缩文件内的文件列表。 4. **解压缩文件**:`unzip ...

    python批量解压RAR文件

    本文将深入探讨如何使用Python结合WinRAR的命令行工具实现批量解压RAR文件,适用于处理大量的压缩文档。 首先,我们要了解Python语言本身并不直接支持RAR文件的操作,但我们可以借助外部库或系统命令来实现。在这个...

    vbs压缩和解压zip,vbs压缩zip,vbs解压zip

    3. **ZIP 文件格式**:一种广泛使用的文件压缩与存档格式,能够将多个文件及目录压缩成一个单一的ZIP文件,同时支持文件的加密保护。 #### 二、压缩 ZIP 文件 ##### 代码解析 ```vbscript Sub Zip(ByVal ...

    shell编程和unix命令

    -name "file.txt"`在当前目录及其子目录下查找名为`file.txt`的文件。 11. **man**:查看命令的帮助文档。 12. **chmod**:更改文件或目录的权限,如`chmod 755 file.sh`使文件具有执行权限。 13. **chown**和`...

    Linux常用Shell脚本珍藏

    50 16 * * * rm -r /abc/* # 删除/abc目录下的全部子目录和文件 0 8-18/1 * * * cut -f1 /xyz/x1 >> /backup/bak01.txt # 每小时读取/xyz目录下x1文件中每行第一个域的数据 50 17 * * * tar zcvf backup.tar.gz /...

    scp.zip批量远程传输文件

    “标签”中的“批量远程终端命令”意味着我们可能需要使用ssh的`-t`选项创建一个伪TTY,以便执行交互式命令,或者使用`-m`选项指定一个包含命令列表的文件,让ssh一次性执行这些命令。 结合以上信息,我们可以构建...

    php生成zip压缩文件

    例如,如果你要压缩的是一个目录及其所有子目录,可以使用递归函数遍历文件: ```php function addDirectoryToZip($dir, $zip, $baseDir = '') { $files = scandir($dir); foreach ($files as $file) { if ($...

    Shell编程答案.docx

    - `50 16 * * * rm -r /abc/*` 每天下午4:50删除 `/abc` 目录下的所有子目录和文件。 - `0 8-18/1 * * * cut -f1 /xyz/x1 >> /backup/` 每小时从早上8:00到下午6:00,提取 `/xyz/x1` 文件的第一列数据追加到 `/...

    jpegoptim照片压缩资料

    `compress_pictuer_size.sh`很可能是一个shell脚本,用于批量处理目录中的所有JPEG图片,自动应用上述的JPEGoptim参数。这种脚本对于处理大量图像文件非常有用,可以大大提高工作效率。 **嵌入式Linux根目录下的...

    使用Dreamhost空间下Shell命令的使用方法

    3. 使用 Shell 命令可以实现批量操作,例如删除多个文件、压缩多个文件夹等。 4. 使用 Shell 命令可以实现自动化操作,例如使用 WGET 命令从其他服务器下载文件。 结语 使用 Dreamhost 空间下 Shell 命令可以极大...

    运维常用linux命令shell技巧范例

    - 删除名为`dir1`的目录及其所有子目录和文件。其中,`-r`表示递归删除,`-f`表示强制删除,即使文件被锁定或设置为只读也会删除。 3. **df**:显示磁盘分区的使用情况。 - 示例:`df -T` - 显示各分区的类型及...

    def_python_

    例如,我们可以通过`os.listdir()`获取指定路径下的所有文件和子目录名,而`os.path.isdir()`则可以用来判断一个路径是否为目录。 当需要检查一个目录是否为空时,我们可以遍历该目录下的所有元素,如果列表长度为...

    1000个【易语言模块大全汇总批量下载】

    易语言~模块~批量~下载 2008-11-08 14:41 文件夹 文件夹 易语言模块大全 2005-10-21 15:30 14489 3100 易语言模块大全\24位转单色位图模块.ec 2007-01-18 07:00 7110 2339 易语言模块大全\69msn.ec 2005-05-26 02:18...

    批量删除.SVN文件

    它们通常是隐藏的,位于每一个受SVN控制的文件夹内,以便于SVN管理文件和目录的状态。 批量删除.SVN文件夹通常不是常规操作,因为这将丢失与这些文件关联的版本控制信息,可能会对之后的版本回溯或协作造成困扰。但...

    vba与winRAR

    ### VBA与WinRAR:利用Shell函数实现文件的压缩与解压缩 #### 一、Shell函数简介 **Shell函数**是Visual Basic (VB) 应用程序中的一个重要组成部分,尤其在Visual Basic for Applications (VBA) 中,它可以用来...

Global site tag (gtag.js) - Google Analytics