拡張子を省略するには、検索を使用しますか?

拡張子を省略するには、検索を使用しますか?

複数の.pngファイルからサムネイルを作成する必要がありますが、ImageMagicksconvertユーティリティを使用してこれを実行したいと思います。サムネイル自体ではなくすべてのファイルを再帰的に見つけるには、次の呼び出しを使用します(読みやすいように2行に分割)。

find . -type f -name "*.png" -not -name "*thumb.png*" \
  -exec convert {} -thumbnail 200x200 {}.thumb.png \;`

a.png.thumb.pngしかし、これをファイル名で実行すると当然a.png。変換に渡された.png2番目のパラメータ{}から拡張子を削除するにはどうすればよいですか?

ベストアンサー1

{}最も簡単な方法は、これをシェルに渡し、シェルにshこれを実行させることです。

find ... \
    -exec sh -c 'convert "$0" -thumbnail 200x200 "${0%.png}.thumb.png"' {} \;

おすすめ記事