디렉터리 구조를 유지하면서 여러 하위 디렉터리에서 다른 디렉터리로 파일을 복사하려면 어떻게 해야 합니까?

디렉터리 구조를 유지하면서 여러 하위 디렉터리에서 다른 디렉터리로 파일을 복사하려면 어떻게 해야 합니까?

유사한 하위 디렉터리가 많이 포함된 디렉터리가 있습니다. 각 하위 디렉터리에는 내가 관심 있는 파일도 있고 관심 없는 파일도 있습니다.

복사하고 싶은 항목:

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/

도움이 되었기를 바랍니다.

관련 정보