web-dev-qa-db-ja.com

Macターミナル:サブディレクトリをループしてすべての画像を最適化する

画像でいっぱいのサブフォルダがたくさんあるフォルダがあります。たとえば、添付の画像を参照してください。

alt

基本的に、それらすべてをループして画像を縮小し、1024ピクセルより広いものがないようにします。それらはすべてjpegです。

SIPSコマンドを知っています。

sips -Z 1024 *.png

ただし、これはすべての画像が現在のディレクトリにある場合にのみ機能します。

すべてのサブディレクトリをトラバースするように設定するにはどうすればよいですか?

3
Quadrant6

Findで実行できます:find images/path -type f -name '*.png' -exec sips -Z 1024 {} \;

Findは、 'images/path'ディレクトリ内でpng拡張子(-name '* .png')のファイル(-type f)を検索し、パラメータのコマンドを実行して、「{}」をファイル名に置き換えます。終了する必要があります。 「\;」を含むコマンド。

8
denisvm

私は私のために働いた小さなbashスクリプトを変更することができました

#!/bin/bash

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