第一个命令查找并列出带有 png 扩展名的 jpeg/gif 文件。第二个命令将文件转换为 png。
find . -type f -name "*.png" | xargs -L 1 -I{} file -i {} | grep -v 'image/png; charset=binary$'
find . -name "*.jpg" -exec mogrify -format png {} \;
我将这两个命令结合起来。
答案1
find . -type f -name '*.png' -exec bash -c '[[ "$(file -bi {})" != "image/png; charset=binary" ]] && mogrify -format png {}' \;
此命令将查找具有 png 扩展名的常规文件,然后mogrify -format png
如果 mime 与“image/png; charset=binary”不匹配,则对每个文件执行。