
한 디렉터리의 모든 파일과 폴더를 다른 디렉터리로 복사하고 싶습니다.없이대상 디렉터리의 권한을 변경합니다.
원본 폴더는 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
이름이 다음으로 시작하는 파일이 있는 경우 ( 상위 디렉터리를 지정하는 자체 ..
제외 ) 사용합니다 ...