如何将符号链接作为符号链接从一台机器复制到另一台机器?

如何将符号链接作为符号链接从一台机器复制到另一台机器?

假设我有两个相同的系统。在第一个系统上,我创建了一个符号链接。在第二个上,我想通过 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

您会发现符号链接在那里,但不是它指向的原始文件。

当然,如果您想同时传输原始文件和符号链接,同时保留它们的关系,您可以将它们都放在 tarball 中,它们都会被传输,并且在解压缩时符号链接仍应正确指向原始文件目标位置中的 tarball。

答案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/

现在,您可以将新的安装点视为本地计算机文件系统的一部分,从而正常复制符号链接。

相关内容