ディレクトリ構造を維持しながら、複数のサブディレクトリから別のディレクトリにファイルをコピーするにはどうすればよいですか?

ディレクトリ構造を維持しながら、複数のサブディレクトリから別のディレクトリにファイルをコピーするにはどうすればよいですか?

類似のサブディレクトリを多数含むディレクトリがあります。これらのサブディレクトリにはそれぞれ、興味のあるファイルとそうでないファイルがあります。

コピーしたい内容:

FROM: 2つの特定のファイル: file1.txt file2.json 各サブディレクトリから

宛先: 別の場所

しかし、その場所にサブディレクトリを作成すると

例えば、私が

base
|_folder_00000001
|         |_-file1.txt
|         |_ file2.json
|         |_some_other_things_I_dont_need
|         |_some_other_folder_I_dont_need
|
|_folder_00000002
|         |_-file1.txt
|         |_ file2.json
|         |_some_other_things_I_dont_need
|         |_some_other_folder_I_dont_need
|
|_folder_00000003
|         |_-file1.txt
|         |_ file2.json
|         |_some_other_things_I_dont_need
|         |_some_other_folder_I_dont_need
|
|_folder_00000004
|         |_-file1.txt
|         |_ file2.json
|         |_some_other_things_I_dont_need
|         |_some_other_folder_I_dont_need
|

これを別の場所にコピーしたいのですが、「必要のない他のものやフォルダ」は除外します

target
|_folder_00000001
|         |_-file1.txt
|         |_ file2.json
|         
|
|_folder_00000002
|         |_-file1.txt
|         |_ file2.json
|             |
|_folder_00000003
|         |_-file1.txt
|         |_ file2.json
|             |
|_folder_00000004
|         |_-file1.txt
|         |_ file2.json
|         

bash ターミナルからこれを実行するにはどうすればよいですか?

答え1

cp以下と一緒に使用できます--parents:

cd base
cp -v --parents */file1.txt */file2.json ../target/

答え2

コピーしたいファイルに何らかのパターンがありますか?

この例では、「-file1.txt」と「file2.json」を新しいディレクトリ構造にコピーするファイルとして取ると、次のように実行できると思います。

rsync -av --include="*/" --include="*-file1.txt" --include="*file2.json" --exclude="*" /src/dir/  /dest/dir/

それが役に立つことを願います。

関連情報