대상 폴더의 권한에 영향을 주지 않고 폴더 내용을 복사하는 방법은 무엇입니까?

대상 폴더의 권한에 영향을 주지 않고 폴더 내용을 복사하는 방법은 무엇입니까?

한 디렉터리의 모든 파일과 폴더를 다른 디렉터리로 복사하고 싶습니다.아니요대상 디렉터리의 권한을 변경합니다.

소스 폴더는 555이고 대상 폴더는 775입니다. 아래 명령을 사용하면 대상 폴더가 555로 변경됩니다. 나는 이것을 원하지 않습니다.

cp -r /origin/. /destination

/origin의 내용을 복사하는 올바른 구문은 무엇입니까? 따라서 /destination은 여전히 ​​775입니다.

나는 sudo가 없습니다.

답변1

사용 rsync:

rsync -rlD /origin/ /destination/

중요한 부분은 /끝에 있는 부분 origin/으로 rsync에게 디렉토리 자체가 아닌 디렉토리의 내용을 복사하도록 지시합니다. 이 방법으로 /destination최상위 디렉토리는 파일 추가를 제외하고는 복사 및 변경되지 않습니다.

스위치 설명:

-a, --archive               archive mode; equals -rlptgoD (no -H,-A,-X)

-r, --recursive             recurse into directories
-l, --links                 copy symlinks as symlinks
-p, --perms                 preserve permissions
-t, --times                 preserve modification times
-g, --group                 preserve group
-o, --owner                 preserve owner (super-user only)
-D                          same as --devices --specials

--devices               preserve device files (super-user only)
--specials              preserve special files

답변2

디렉터리 자체를 복사하지 말고 그 안에 있는 파일을 복사하세요.

cp -r /origin/* /destination

도트 파일(이름이 문자로 시작하는 파일)이 있는 경우 건너뛰기 .때문에 복사되지 않습니다 . 포인트 파일을 복사하는 *데 사용되며 , 이름이 시작하는 파일이 있는 경우 (자신 외에는 상위 디렉터리를 지정합니다).cp -r /origin/.[!.]* /destinationcp -r /origin/..?* /destination....

관련 정보