如何在保留目录结构的同时将文件从多个子目录复制到另一个目录?

Kan*_*bot 7 command-line bash

我有一个包含许多类似子目录的目录,每个子目录都有一些我感兴趣的文件和一些我不感兴趣的文件。

我想复制:

FROM:两个特定文件:每个子目录中的 file1.txt file2.json

TO:不同地点

但在该位置创建子目录

例如如果我有

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
|
Run Code Online (Sandbox Code Playgroud)

我想将其复制到另一个位置,但排除“我不需要的其他一些东西和文件夹”

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
|         
Run Code Online (Sandbox Code Playgroud)

我如何从 bash 终端执行此操作?

pLu*_*umo 9

您可以cp使用--parents

cd base
cp -v --parents */file1.txt */file2.json ../target/
Run Code Online (Sandbox Code Playgroud)