우리는 심볼 링크를 사용하여 디스크 전체의 내용을 사용하여 "가상"폴더 / 파일 트리를 만듭니다. 본질적으로 우리는 엉망이되어 스크립트는 파일 이름을 강타하면서 원래의 unorganized 파일에 심볼릭 링크를 만들어서 조직화 된 파일 트리를 만들 것입니다.
이 작업이 끝나면이 "가상"파일 트리를 원격 서버에 동기화하여 rsync를 --copy-links
param.
우리가 직면하게되는 문제는 rsync가 심볼릭 링크 이름의 모든 변경 사항을 완전히 무시한다는 것입니다. 그래서 예를 들면 :
mkdir export # make a dir for export
ln -s /file.jpg export/fileLink.jpg # create a link to file.jpg
rsync --copy-links -avzhs --delete export/ /tmp/rsyncExport # rsync with an export dir
ls /tmp/rsyncExport/
fileLink.jpg
# we find our file (not a symlink) with the symlink name.
지금까지는 그렇게 좋았지 만 링크 이름을 변경하고 다시 동기화하면 :
rm export/fileLink.jpg
ln -s /file.jpg export/fileLink2.jpg # create a link to file.jpg but with another name
rsync --copy-links -avzhs --delete export/ /tmp/rsyncExport # rsync again
ls /tmp/rsyncExport/
fileLink.jpg
# we find our file (not a symlink) with the old symlink name and not the new one.
분명히 rsync는 링크를 "따르며"파일이 변경되지 않았으므로 링크가 다르다는 사실을 무시하고 계속 이동합니다.
위의 동작을 수정하는 방법이 있습니까?
당신의 도움을 주셔서 감사합니다.