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

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

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

원본 폴더는 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/.[!.]* /destination도트 파일을 복사하고 cp -r /origin/..?* /destination이름이 다음으로 시작하는 파일이 있는 경우 ( 상위 디렉터리를 지정하는 자체 ..제외 ) 사용합니다 ...

관련 정보