두 개의 동일한 시스템이 있다고 가정해 보겠습니다. 첫 번째 시스템에서는 심볼릭 링크를 만들었습니다. 두 번째에서는 sftp를 통해 해당 심볼릭 링크를 복사하고 싶고 심볼릭 링크는 동일하게 작동해야 합니다(즉, 심볼릭 링크가 에 연결된 경우 /etc/
복사한 후 심볼릭 링크만 복사되고 심볼릭 링크만 복사됩니다(링크는 아님). 문서))
어떻게 할 수 있는지/할 수 있는지에 대한 아이디어가 있나요? 나오직참고용으로만 심볼릭 링크를 복사하고 싶습니다.
답변1
심볼릭 링크를 압축한 경우 원하는 방식으로 압축된 아카이브를 원격 시스템에 복사할 수 있습니다. 압축을 풀면 심볼릭 링크만 복사되고 다른 것은 복사되지 않은 것을 알 수 있습니다. 예를 들어:
이를 테스트하기 위해 먼저 텍스트 파일을 만들었습니다.
echo this is a test > file.txt
그런 다음 파일에 대한 심볼릭 링크를 만들고 tar gzip으로 압축합니다.
ln -s file.txt link.lnk
tar czvf tarball.tar.gz link.lnk
이 파일을 다른 컴퓨터로 전송하고 압축을 풉니다.
tar xzvf tarball.tar.gz
심볼릭 링크는 있지만 심볼릭 링크가 가리키는 원본 파일은 없다는 것을 알 수 있습니다.
물론 관계를 유지하면서 원본 파일과 심볼릭 링크를 모두 전송하려는 경우 둘 다 타르볼에 넣으면 모두 전송되며 심볼릭 링크는 압축을 풀 때 여전히 원본 파일을 올바르게 가리켜야 합니다. 대상 타르볼.
답변2
심볼릭 링크를 어떻게 처리하고 싶은지 정확히 불분명합니다. 내가 이해한 바에 따르면 다른 시스템에서 심볼릭 링크를 다시 만들고 싶어합니다. 기호 링크는 파일 시스템에 따라 다르며 파일을 복사하는 데 사용되는 프로토콜은 이를 인식해야 합니다. 좋은 예는 다음과 같습니다.rsync
옵션이 있습니다 -a
.
좀 더 구체적으로 말하자면, 그 -l
옵션이겠지만 -a
아마도 그것이 당신이 원하는 것일 것입니다.
대상을 끌어당기지 않고(링크 역참조) 심볼릭 링크를 다시 생성합니다.
답변3
@polemon이 이 질문에 이미 답변했다는 것을 알고 있습니다.
그러나 문제를 빨리 해결하기 위해 최선을 다하십시오.
어떤 스위치를 사용하고 싶은지 알려면 man rsync를 수행해야 합니다...
rsync -avz -e ssh /file or sym link/to/copy/ user@ip:/dest/path/
하지만 귀하의 경우에는 링크가 깨지지 않았는지 확인해야 합니다!
답변4
sshfs를 사용하여 원격 시스템을 로컬 시스템에 마운트할 수 있습니다.
sshfs remote.machine:/home/name/remotedir/ /home/name/localdir/
이제 새 마운트 지점을 로컬 시스템 파일 시스템의 일부로 처리하고 심볼릭 링크를 정상적으로 복사할 수 있습니다.