ディレクトリ以外のファイルだけを移動しますか? [コピー]

ディレクトリ以外のファイルだけを移動しますか? [コピー]

フォルダ内のすべてのファイル(フォルダを除く)を別のディレクトリに移動したいと思います。

私はこのコマンドを使ってきました:

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

関連情報