findコマンドを使用して単一のファイルを検索し、複数のフォルダに移動する方法は?
次のコマンドを試しましたが、運がありませんでした。
find /export/logs/tmp/logs/* -type f -name f_apec_`echo $(date +"%Y-%m-%d")`_1 -exec mv -v {} /export/logs/nucleus1/ /export/logs/nucleus2/ \;
答え1
ファイルを複数のディレクトリに移動することはできませんが、独自のコマンドを使用してすべての宛先にコピーして最後のディレクトリに移動できます。
find /export/logs/tmp/logs/ -type f -name "f_apec_$(date +"%Y-%m-%d")_1" -exec echo cp -v '{}' /export/logs/nucleus1/ \; -exec echo mv -v '{}' /export/logs/nucleus2/ \;
次のコマンドを使用してファイルを複数のディレクトリにコピーすることもできますxargs
。
echo dir1/ dir2/ dir3/ | xargs -n1 cp /path/to/Onefile
答え2
まず、mv
ファイルをコピーするのではなく、移動することです。を使用する必要がcp
ありますが、cp
複数のファイルを単一の宛先にコピーできます。
これを数回行う必要がありますcp
。使用できる1つの解決策は、パラメータを複数のターゲットにコピーする簡単なスクリプトを作成することです。次に、そのファイルをコマンドの引数として使用してスクリプトを実行し、find .. -exec {}
スクリプトから複数回コピーします。