![Rsync는 완전한 심볼릭 링크 디렉터리 구조를 유지합니다.](https://linux55.com/image/154151/Rsync%EB%8A%94%20%EC%99%84%EC%A0%84%ED%95%9C%20%EC%8B%AC%EB%B3%BC%EB%A6%AD%20%EB%A7%81%ED%81%AC%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EA%B5%AC%EC%A1%B0%EB%A5%BC%20%EC%9C%A0%EC%A7%80%ED%95%A9%EB%8B%88%EB%8B%A4..png)
그래서 파일을 전송할 때 동기화 링크 구조를 유지하려고 하므로 폴더 구조는 다음과 같습니다.
$HOME/backup/backup/symlinks
- $HOME/Documents/hello.txt
$HOME/backup/backup/data
이제 동기화할 때 심볼릭 링크의 전체 폴더 구조를 유지하고 싶습니다.
지금 하는 일:
$HOME/backup/backup/symlinks
- $HOME/Documents/hello.txt
$HOME/backup/backup/data
- hello.txt
내가 그게 뭘 하고 싶어?
$HOME/backup/backup/symlinks
- $HOME/Documents/hello.txt
$HOME/backup/backup/data
- /home/user/Documents/hello.txt (aka, create the full structure inside the backup/data folder)
따라서 데이터 폴더 내에 원본 심볼릭 링크 콘텐츠 소스에 대한 전체 경로를 만들고 싶습니다.
나는 다음을 시도했습니다 :
rsync -a ${BACKUP}/backup/symlinks/ /${BACKUP}/backup/data/
rsync -aK ${BACKUP}/backup/symlinks/ /${BACKUP}/backup/data/
rsync -aKL ${BACKUP}/backup/symlinks/ /${BACKUP}/backup/data/
rsync가 이것을 할 수 있습니까? 그렇다면 어떻게 이를 달성할 수 있습니까?
답변1
먼저 링크를 구문 분석한 다음 개별 파일에 대해 rsync를 실행해야 한다고 생각합니다. 이렇게 하면 -R
.IE가 전달됩니다. Linux에서 다음을 시도해 보세요.
rsync -avRL --files-from=<(find ${BACKUP}/backup/symlinks/ -exec readlink -f {} \;) / /${BACKUP}/backup/data/
Mac OS에서는 다음과 같습니다.
rsync -avRL --files-from=<(find ${BACKUP}/backup/symlinks/ -exec readlink {} \;) / /${BACKUP}/backup/data/
find
명령이 올바른 절대 경로를 출력한다고 가정합니다 . 그것은 ${BACKUP}
절대적인 디렉토리입니다.