条件に応じたファイルのコピー

条件に応じたファイルのコピー

これが私が解決しようとしている問題です。

  • いくつかのファイルと他のディレクトリを含むディレクトリ「A」があるとしましょう。
  • Aディレクトリ内のすべてのファイルをBディレクトリにコピーしたいです。
  • フォルダA内のすべてのフォルダをフォルダCに再帰的にコピーしたいと思います。

UNIX / Linuxでこれを達成するための最短でプラットフォームの中立的な方法は何ですか?

答え1

おそらくこんな感じ

find A -type f -maxdepth 1 -exec cp {} B/ \;

そして

find A -type d -maxdepth 1 -mindepth 1 -exec cp -r {} C/ \;

その中には、-type探しているタイプ(ファイルまたはディレクトリ)、ディレクトリの- maxdepth深さ、および-exec結果に対して実行するコマンドを識別するフラグがあります。

答え2

次に終わるglobパターンがcpある場合は、コピーディレクトリを使用できます。/

cp -a A/*/ C/

-a(同様-r)オプションを使用せずにファイルをコピーできます。

cp A/* B/

最後のコマンドは、コピーされていないディレクトリに無害なエラーを提供します。

関連情報