いくつかのディレクトリを作成するために単純なスクリプトを使用しています。名前で特定のファイルを見つけ、私が作成したディレクトリに移動します。私が使用するコードは次のとおりです。
mkdir ./3DBGB_run
mkdir ./run_optimization
mkdir ./run_optimization/project_mesh
mkdir ./run_optimization/CFD_optimized
find . -name '*.template' -exec mv -i {} ./3DBGB_run \;
find . -name '3dbgbinput.*.dat' -exec mv -i {} ./3DBGB_run \;
find . -name 'controlinputs.*.dat' -exec mv -i {} ./3DBGB_run \;
find . -name '*.iec' -exec mv -i {} ./run_optimization/project_mesh \;
find . -name '*.trb' -exec mv -i {} ./run_optimization/project_mesh \;
find . -name '*.py' -exec mv -i {} ./run_optimization \;**
コードが実行され、ファイルを目的のディレクトリに移動しますが、各ファイルに対して「同じファイルなので、ファイルを移動できません」というエラーメッセージも表示されます。
ベストアンサー1
ターゲットディレクトリからの検索を避ける必要があります。たとえば、次のように追加できます! -path $TARGET_DIR
。
find . -name '*.template' ! -path "*3DBGB_run/*" -exec mv -it ./3DBGB_run {} \+