質問: シェルスクリプト、フォルダを反復処理 私は非常に基本的なシェルスクリプトの知識を持っています。このような多くの異なるフォルダのoriginalフォルダの下に写真がありますfolder + folder1 + original + folder2 + original + folder3 + original + folder4 + original mogrifyを使用して、これに対する構造に従ってthumbフォルダーの下に親指を作成しようとしています。folder + folder1 + original + thumb + folder2 + original + thumb + folder3 + original + thumb + folder4 + original + thumb 反復する可能性のあるシェルスクリプトの書き方に少し迷っています。 mogrifyに設定を与えても大丈夫ですが、各フォルダーを繰り返してmogrifyコマンドを実行するようにスクリプトに指示する方法を完全には理解していません。
回答: 受け取る応答には、かなりのバリエーションが見られると確信しています。それを行うにはいくつかの方法があります。次のアプローチでは、単にlsを使用して、現在のディレクトリ内のディレクトリを一覧表示します。次に、そのディレクトリに移動して、pngファイルのリストを取得します(適切に変更します)。 pngファイルごとに、mogrifyが呼び出されます。基本的に、あなたはする必要があります これをテキストエディタにコピーします。 mogrifyコマンドを含む行を適切に変更します。 簡単にするために、実行するディレクトリにプレーンテキストファイルとして保存します。 chmod +x /path/to/scriptnameでファイルの実行ビットを設定します ./scriptnameのディレクトリから実行します 以下のスクリプト:dirs="$(find . -mindepth 1 -maxdepth 2 -type d)" for d in $dirs do cd $d files="$(find . -name '*.png')" for f in $files do mogrify -path ./thumbnails/ $f done cd .. done