Mac 终端:循环遍历子目录并优化所有图像

Mac 终端:循环遍历子目录并优化所有图像

我有一个文件夹,其中包含许多充满图像的子文件夹。例如,请参阅所附图片。

替代

基本上,我想循环遍历所有图像并缩小图像尺寸,使它们宽度不超过 1024 像素。它们都是 jpeg。

我知道 SIPS 命令,即

sips -Z 1024 *.png

但是,只有当所有图像都在当前目录中时才有效。

我该如何设置它来遍历所有子目录?

答案1

您可以使用 find 来运行它:find images/path -type f -name '*.png' -exec sips -Z 1024 {} \;

Find 将在 'images/path' 目录内搜索文件(-type f),带有 png 扩展名(-name '*.png'),并执行参数中的命令,用文件名替换“{}”,您需要以“\;”结尾命令。

答案2

我设法修改了一个对我有用的小 bash 脚本

#!/bin/bash

find "foldername" -type f | \
while read file ; do
    echo "processing ${file}"
    sips -Z 2000 ${file}
done

相关内容