ディレクトリ内の32文字のファイルを繰り返し見つけて、次のコマンドを適用します。

ディレクトリ内の32文字のファイルを繰り返し見つけて、次のコマンドを適用します。

私のフォルダとファイルは次のとおりです。

/thumbs/6b0/6b029aab9ca00329cd28fd792ecf90a.jpg
/thumbs/6b0/6b029aab9ca00329cd28fd792ecf90a-s.jpg
/thumbs/d11/d11e15a72e20e14c45bd2769d763126d.jpg
/thumbs/d11/d11e15a72e20e14c45bd2769d763126d-s.jpg

名前に-sが含まれていないThumbフォルダのすべてのサブディレクトリにあるファイルに次のコマンドを適用したいと思います。

mogrify -resize 50% -quality 85 -strip filename.jpg

私はfindとgrepを見回しましたが、これを行う方法がわかりません。

助けてくれてありがとう。

答え1

find thumbs/ -not -name "*-s.jpg" -exec mogrify -resize 50% -quality 85 -strip {} \;

答え2

トピックの質問に答えてください。

find . -name '????????????????????????????????.jpg' -exec cmd {} \;

?この32秒を挿入するにはを使用するか、tcshパターンを入力します。このシェルを使用してモードでaと入力して挿入モードを終了するには、[内容の切り取り]をクリックして32回貼り付けます。zshbashemacsAlt+3Alt+2?kshvi?Escx?32p

GNUを使用すると、find次のこともできます。

find . -regextype egrep -regex '.*/[^/]{32}\.jpg' -exec cmd {} \;

関連情報