私はまだ grep/find/awk/xargs のトリックにあまり詳しくないので、しばらくお待ちください =]
特定のディレクトリ内のランダムな場所に、*.xxx などの特定のファイル タイプがあります。このようなファイルをすべて見つけて、Unix のホーム ディレクトリ (まだ存在しない可能性があります) のフォルダーに移動するにはどうすればよいでしょうか。
答え1
find
オプションと一緒に使用しますexec
が、最初にターゲット フォルダーを作成します。
mkdir -p /home/somewhere/else
find /somewhere -iname "*.xxx"
これにより、移動されるすべてのものがリストされます。これらが移動するファイルであることが確実な場合は、以下を実行します。
find /somewhere -iname "*.xxx" -exec mv '{}' /home/somewhere/else/ \;
exec
行の は'{}'
実際のファイル名に置き換えられ、ターゲットに移動されます。同様に、コピーするには をmv
と交換するだけですcp
。\;
コマンドを終了するには が必要です。
既存のファイルを上書きする各ファイル操作の前に確認が必要な場合は、それぞれまたは-i
の後にオプションを追加できます。mv
cp
grep
、およびそれらの類似のものは必要ありませんxargs
。これは、不必要に物事を複雑にします。