Unix で特定の種類のファイルをすべてディレクトリに移動 (またはコピー) するにはどうすればよいですか?

Unix で特定の種類のファイルをすべてディレクトリに移動 (またはコピー) するにはどうすればよいですか?

私はまだ 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の後にオプションを追加できます。mvcp

grep、およびそれらの類似のものは必要ありませんxargs。これは、不必要に物事を複雑にします。

関連情報