如何在保留目錄結構的同時將檔案從多個子目錄複製到另一個目錄?

如何在保留目錄結構的同時將檔案從多個子目錄複製到另一個目錄?

我有一個包含許多類似子目錄的目錄,每個子目錄都有一些我感興趣的檔案和一些我不感興趣的檔案。

我想複製:

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
|

我想將其複製到另一個位置,但排除“我不需要的其他一些東西和資料夾”

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/

我希望這有幫助。

相關內容