'find'を使ってカレントディレクトリ下のpng
ファイルを再帰的に探索してjpg
に変換し、元のpng
は削除するスクリプトを書いています。
階層がフラットな場合は思ったとおりに機能するのですが、CurrDir/SubDir1/SubDir2/1.png
のような入れ子構造でもカレントディレクトリ直下(CurrDir/1.jpg
)に変換後のファイルが生成されます。元のパスに作るには下記コードをどう書き換えればよいでしょうか?
sh
1#!/usr/bin/env zsh 2# findでpngを探し出す > それぞれjpgに変換する > 元のpngは消す 3find . -type f ( -name "*.png" -o -name "*.PNG" ) -exec convert {} -set filename:basename "%[basename]" "%[filename:basename].jpg" \; -exec rm {} \; 4
# 入れ子構造の場合 (前) CurrDir - Dir - png - Dir - Dir - png - png - png (後 入れ子でも非入れ子でもCurrDir直下に全てのjpgが作られる) CurrDir - Dir - Dir - Dir - jpg - jpg - jpg - jpg (理想 それぞれのpngがあった位置にjpgも生成してほしい) CurrDir - Dir - jpg - Dir - Dir - jpg - jpg - jpg
回答2件
あなたの回答
tips
プレビュー