試してみてください。
find . -name '*.blend' -exec blender {} --background --python myScript.py \;
説明:
find
*.blend
一致するすべてのファイル - あなたのシェルは、現在のディレクトリ内のファイルのためにこれを拡張しないように、単一引用符を使用することが重要です
- 見つかったファイルごとに
blender {} --background --python myScript.py
を実行します。 {}
がファイル名に置き換えられます(例:some/sub/tree/file.blend
)。
\;
は、-exec
ステートメントを終了します。 \
は;
をエスケープするために使用されるため、シェルはそれを吸収せずに複数のコマンドに分割します。
blender
のすべてのインスタンスは*.blend
ファイル(複数可)の隣にならないようにblender
が正しく「ここ」ではありませんファイルを処理できる必要があり、初期の作業ディレクトリから実行、および均等myScript.py
にアクセスします。
注:私はblend
に慣れていないんだけど、それがバックグラウンドに行くと(原因--background
に)処理に時間がかかります場合は、あなたがあなたのマシンを圧倒して...あなたが好むかもしれません一度に1つのファイルを処理するか、ジョブを連続して実行できる独立したジョブ(各アイテムを完了するまで)に分割することができます...ボーナスポイントの場合は、制限を処理しながら同時に簡単な操作を実行できるmake
(例:make -j 8
は最大で8
個のコマンドを同時に実行します)。
GNU 'find'とその動作' -exec command; 'を見てみることをお勧めします。 – Cyrus