フォルダ内のすべてのファイル(フォルダを除く)を別のディレクトリに移動したいと思います。
私はこのコマンドを使ってきました:
find . -maxdepth 1 -type f -exec mv {} destination_folder \;
しかし、私は "exe_"で始まるファイルを除くすべてのファイルを移動したいので、次のことを試しました。
find . -maxdepth 1 -type f -exec mv !(exe_*) part1a_si_atom-exp001 \;
しかし、今ではディレクトリも移動します。どうですか?
答え1
!(exe_*)
find コマンドを実行する前に、シェルによって解釈され拡張されます。代わりに、この-name
フラグを使用して次を見つけてください。
find . -maxdepth 1 -type f -not -name 'exe_*' -exec mv {} destination_folder \;
また、オーバーヘッドを減らすために、コマンド出口として+
代わりに使用することをお勧めします。;
-exec