bash에서 모든 디렉토리와 파일을 재귀 적으로 복사하는 방법은 무엇입니까?


137

스크립트가 있습니다 :

find ./SourceFolder/ -maxdepth 4 -exec cp -R '{}' ./DestFolder/ \;

SourceDir 하위 폴더도 포함합니다.

DestFolder모든 트리뿐만 아니라 다른 모든 레벨과 파일의 레벨 에서도 문제가됩니다 .

어떻게 고치는 지 ?


죄송합니다, -name을 추가 "* .txt 인"잊었
user710818

답변:


289
cp -r ./SourceFolder ./DestFolder

6
따라서 명확하게하기 위해 capital -R 옵션은 루트 디렉토리를 다시 복사합니다. small -r 옵션은 루트 경로를 동일하게 유지합니다.
AnneTheAgile

8
@AnneTheAgile-지금 내 테스트에서 매뉴얼 페이지에 따르면 -r과 -R은 다르지 않습니다.
aaaaaa

@aaaaaa, ty! 어떤 OS / 버전을 사용하고 있습니까? 나중에 bash 명령이 운영 체제마다 미묘하게 다를 수있는 것으로 나타났습니다.
AnneTheAgile

2
cpbash 명령이 아니라 별도의 실행 파일이므로 시스템마다 다릅니다. 반면에 진정한 bash 명령은 운영 체제에서 동일합니다.
lanzz

52

간단한 사본 코드.

cp -r ./SourceFolder ./DestFolder

성공 결과를 가진 사본을위한 코드

cp -rv ./SourceFolder ./DestFolder

소스에 읽기 전용 파일이 있으면 강제로 복사

cp -rf ./SourceFolder ./DestFolder

자세한 도움말

cp --help
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.