쉘을 사용하여 디렉토리의 "정확한" 복사본을 만드는 방법

쉘을 사용하여 디렉토리의 "정확한" 복사본을 만드는 방법

Bash를 사용하여 타임스탬프, 권한 및 기타 모든 속성을 포함하여 모든 속성을 정확히 동일하게 유지하면서 디렉터리를 다른 위치로 복사하려면 어떻게 해야 합니까?

답변1

여러분이 찾고 있는 도구는 rsync많은 Linux 플랫폼의 표준입니다. 적절한 옵션과 함께 사용하면 모든 목적에 맞게 소스 디렉터리를 대상 디렉터리에 일대일로 복사할 수 있습니다.

rsync -aHSAX -ih --progress /path/to/source_dir/ /path/to/target_dir

이렇게 하면 전체가 복사됩니다.콘텐츠사용자, 권한, 타임스탬프, ACL 및 확장 속성(마지막 두 개를 상기시켜 준 @K-att-에게 감사드립니다)을 유지하고 심볼릭 링크를 심볼릭 링크로 복사 합니다 source_dir. target_dir복사 대상의 파일 시스템은 소스의 파일 시스템과 동일한 속성을 지원해야 합니다. 그렇지 않으면 오류 메시지가 표시됩니다.

포함된 디렉터리도 복사하려면 source_dir(즉, 새로 생성된 디렉터리로 끝나는 경우 ) 뒤에 오는 디렉터리를 target_dir/source_dir/생략해야 합니다 ./source_dir/

cp또 다른 방법은 적절한 옵션을 사용하는 것입니다 .

cp -r --preserve=all /path/to/source_dir /path/to/target_dir

지원되는 모든 속성(소유자, 권한, 타임스탬프, ACL, SELinux 컨텍스트, 확장 속성)도 반복적으로 복사되어 보존됩니다.

관련 정보