에 의해 수행 될 필요는 없지만이 작업을 수행 rsync
하기 위해 스크립트를 작성할 필요가 없으며 rsync
내가 원하는 것에 매우 가깝습니다.
rsync -a
(또는 -l
)는 심볼릭 링크를 보존 할 수 있으며 심볼릭 링크 -L
를 역 참조하여 일반적인 파일 / 디렉토리처럼 복사 할 수 있습니다. 그러나 심볼릭 링크를 유지하고 링크가 가리키는 파일 / 디렉토리를 복사 할 수 있습니까?
다음은 예입니다. 이 폴더 계층 구조가 있다고 가정 해보십시오.
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirB/not_this_file
dirC/file
dirC/file2
dirD/others
그리고 내가 할 때 rsync -aR dirA dest
(또는 다른 것), 나는 이것들이 정확하게 나타나기를 원합니다 dest
:
dirA/link_to_file -> ../dirB/file
dirA/link_to_dir -> ../dirC
dirB/file
dirC/file
dirC/file2
이 가능 rsync
합니까? 감사합니다.
절대 경로가 있거나 소스 디렉토리 외부를 가리키는 심볼릭 링크를 무시할 수 있다고 가정합니다.
잘 잡았습니다. 내 유스 케이스에서는 트리 외부를 가리키는 링크 포인트가 없으며 링크에 절대 경로가 없습니다.
—
Wei-Yin
내가 그것에 대해 더 많이 생각할수록, 표준 유틸리티가 이것을하지 않을 것이라고 생각합니다. 일반적인 경우에, 당신이 그 대상 (심볼릭 링크가 포함 된 심볼릭 링크에 심볼릭 링크 또는보다 일반적으로 심볼릭 링크가있는 경우, 단일 소스 주어진 목적지의 큰 숫자를 생성해야 할 수도 있습니다 예를 들어
—
Gilles 'SO- 악마 그만
a -> b
, b -> c/foo
, c -> d/e
: 복사에 대한 요청 a
도 복사해야합니다 b
, c
, c/foo
, d
, d/e
및 d/e/foo
).
@Gilles : 그렇습니다. 링크를 추적하면 여전히 소스 디렉토리에있는 한 많은 파일을 포함시킬 수 있습니다.
—
Wei-Yin
dirA/link
에 심볼릭 링크../dirB/file
, 다음이 복사로 처리되어야dirB/file
에dest/dirB/file
와dirA/link
에dest/dirA/link
.dirA/link
링크가 있다면../../another_file
어떨까요? 일반적으로dirA/link
디렉토리 트리에서 상위 디렉토리를 가리키는 경우 어떻게됩니까 ?