为什么该scp
命令没有将链接从本地计算机复制到另一台计算机?
scp -rp dir linux:/dir_target
当源目录中同时有文件和链接时,如何复制链接?
答案1
如果我理解正确的话。您希望将本地计算机上的 dir 精确镜像到 Linux 上的 dir_target,并且它会复制符号链接的内容,而不是复制符号链接本身。要制作精确的副本,您需要使用 rsync 而不是 scp。
rsync -Wav --progress dir linux:dir_target
我怀疑这会产生预期的结果。无论如何,我通常使用 rsync,因为它只会复制需要复制的文件,并且通常比 scp 更智能。
答案2
这是个好问题。不幸的是,scp 不会复制符号链接,而且似乎没有计划添加它:https://bugzilla.mindrot.org/show_bug.cgi?id=485。
然而,替代方案确实存在。你可以:
- 使用
tar cvfz
压缩文件夹(tar 将保留链接);然后 scp 该 tar 文件 - 使用
rsync -e ssh
开关通过 ssh 同步(例如rsync -ave ssh /src/dir user@hostname:/folder
) 使用这样的命令来查找并列出符号链接,然后在另一端重新创建它们(不是很好,但我考虑自己实现):
ls -la `find openddr_ODRINT1/ -type l`