假设我有两个相同的系统。在第一个系统上,我创建了一个符号链接。在第二个上,我想通过sftp复制该符号链接,并且符号链接应该工作相同(即,如果将符号链接链接到/etc/
,将其复制过来,则将仅复制符号链接,并且仅复制符号链接(而不是链接文件))
关于如何执行此操作/如果可以执行此操作的任何想法?我只是想复制的符号链接,没有别的; 只是参考。
sftp
不会让你那样做。rsync
可以,可以ssh cp ...
假设我有两个相同的系统。在第一个系统上,我创建了一个符号链接。在第二个上,我想通过sftp复制该符号链接,并且符号链接应该工作相同(即,如果将符号链接链接到/etc/
,将其复制过来,则将仅复制符号链接,并且仅复制符号链接(而不是链接文件))
关于如何执行此操作/如果可以执行此操作的任何想法?我只是想复制的符号链接,没有别的; 只是参考。
sftp
不会让你那样做。rsync
可以,可以ssh cp ...
Answers:
如果对符号链接进行压缩,则可以将压缩文件以任意方式复制到远程计算机上。解压缩它后,您会发现仅复制了符号链接,而没有其他任何内容。例如:
为了对此进行测试,首先我创建了一个文本文件。
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中,并且它们都将被传输,并且在解压缩时,符号链接仍应正确指向原始文件。目标位置的压缩包。
sftp
(linux.die.net/man/1/sftp)的手册页!有symlink
专门针对您似乎需要的命令。
尚不清楚您要如何正确处理符号链接。据我了解,您想在另一个系统上重新创建符号链接。符号链接取决于文件系统,用于复制文件的协议必须了解这一点。一个很好的例子是使用rsync
该-a
选项。
更具体地说,是-l
选项,但-a
可能正是您想要的。
它将重新创建符号链接,而不会拉扯目标(取消引用链接)。
sftp
将使用-r
开关遍历子目录,但不遵循符号链接,因为它抽象了文件系统。sftp
支持在主机上创建符号链接。您至少应该尝试仅下载符号链接(当符号链接为~/etc
->时/etc/
不要get etc
拖尾/
),然后看看会发生什么。它取决于服务器和客户端的FS。请相应地编辑您的原始问题!
其他答案已经说明了如何将符号链接传输到另一台计算机。但是,无论您如何传输符号链接,都将无法使用该符号链接/etc/
通过FTP,SFTP,SCP,SSH或任何其他方式访问文件。这些服务往往被chroot到给定目录,或者被阻止提供对未明确共享的文件的访问。当然,总是有办法在较旧的系统上进行破解,但是一旦发现此类漏洞,便会立即进行修补和升级。对不起,我认为您想做的事不会实现。