jpegoptim的高级用法

问题描述 投票:0回答:2

我目前正在通过 cron 运行以下 jpegoptim 命令,让 jpegoptim 查找要压缩的 jpg 文件。

find /home/public_html/public/uploads -name '*.jpg' -type f -print0 | xargs -0 jpegoptim -o -p --size=300k --strip-all

这可行,但是有没有办法包含 .jpeg、.JPG 和 .JPEG,而不必多次运行相同的命令?另外,是否可以每小时运行一次,或者这会继续压缩相同的文件最终降低质量吗?

unix cron jpegoptim
2个回答
0
投票

您可以通过使用两个不区分大小写的名称匹配来匹配所有

*.jpg
*.JPG
*.jpeg
*.JPEG

find /home/public_html/public/uploads \
    '(' -iname '*.jpg' -o -iname '*.jpeg' ')' -type f -print0 \
| xargs -0 jpegoptim -o -p --size=300k --strip-all

例如,您可以保留单独的时间戳以避免重新处理相同的文件

find /home/public_html/public/uploads \
    -newer .STAMP '(' -iname '*.jpg' -o -iname '*.jpeg' ')' -type f -print0 \
| xargs -0 jpegoptim -o -p --size=300k --strip-all
touch .STAMP

0
投票

从 bash 4.0 开始,您还可以使用以下选项:

#!/bin/bash
shopt -s nocaseglob
...
jpegoptim -m25 *.jpg     # will match jpg, JPG, Jpg, etc.
© www.soinside.com 2019 - 2024. All rights reserved.