「ファイルのみ」を再帰的にコピーする方法

「ファイルのみ」を再帰的にコピーする方法

フォルダ0とそのサブフォルダとファイルの構造があるとしましょう。

   folder0
      subfolder01
        file011
        file012
      subfolder02
        file021
      file01
      file02

folder0デフォルトフォルダ内のすべてのファイルを別の場所にコピーして、すべてのディレクトリに配置したいと思います。どうすればいいですか?使った

cp --recursive folder0address targetfolderaddress

ただし、サブフォルダはターゲットフォルダにコピーされます。フォルダではなく、ディレクトリとサブディレクトリのすべてのファイルが必要です。私の言葉は、ターゲットフォルダが次のようになるということです。

targetfolder
  file011
  file012
  file021
  file01
  file02

答え1

使用find:

find folder0 -type f -exec cp {} targetfolder \;

GNUを使用すると、coreutilsこれをより効率的に実行できます。

find folder0 -type f -exec cp -t targetfolder {} +

前者のバージョンはコピーさcpれたすべてのファイルに対して実行されますが、後者はcp一度だけ実行されます。

答え2

zshを使用していただきありがとうございます。**再帰ワイルドカードの場合そしてグローバル予選.通常のファイルのみが一致します。

cp -p folder0/**/*(.) targetfolder

答え3

または xargs を使用してください。

 find folder0 -type f | xargs -I {} cp -v {} targetfolder;

何が起こっているのかを確認するには、-vを使用してください。

関連情報