cp -r src/* dest/
src/
& dest/
둘 모두에 디렉터리가 포함되어 있으면 foo
내용이 src/foo/
에 복사됩니다 dest/foo/
. 이는 필수입니다.
dest/
대신 다른 디렉토리에 대한 심볼릭 링크가 포함되어 있으면 foo -> /sym/foo
명령에서 오류가 발생합니다.
cp: 디렉터리가 아닌 'dest/foo'를 'src/foo' 디렉터리로 덮어쓸 수 없습니다.
다음을 복사해도 되나요?표적GNU를 사용한 심볼릭 링크 cp
? 내가 아는 한 다음 옵션에는 하나의 옵션( -L
/ )만 있습니다.--dereference
원천심볼릭 링크.
답변1
이 동작을 수행하려면 rsync
' 옵션을 사용할 수 있습니다 .--keep-dirlinks
에서 man rsync (1)
:
-K, --keep-dirlinks
이 옵션을 사용하면 수신자는 디렉터리에 대한 심볼릭 링크를 실제 디렉터리로 처리하지만 보낸 사람의 실제 디렉터리와 일치하는 경우에만 해당됩니다. 이 옵션이 없으면 수신자의 심볼릭 링크가 제거되고 실제 디렉터리로 대체됩니다.
예를 들어 "file" 파일이 포함된 "foo" 디렉터리를 전송했지만 "foo"는 싱크의 "bar" 디렉터리에 대한 심볼릭 링크라고 가정해 보겠습니다. 그렇지 않은 경우
--keep-dirlinks
수신자는 심볼릭 링크 "foo"를 삭제하고 이를 디렉터리로 다시 만든 다음 새 디렉터리에 파일을 받습니다. 를 사용하면--keep-dirlinks
수신자는 심볼릭 링크를 유지하고 "file"은 "bar"로 끝납니다.
예:
rsync -av --keep-dirlinks src/ dest