![使用无密码验证的 scp](https://linux22.com/image/564483/%E4%BD%BF%E7%94%A8%E6%97%A0%E5%AF%86%E7%A0%81%E9%AA%8C%E8%AF%81%E7%9A%84%20scp.png)
无密码验证的 scp 工作正常,但如果删除源上的文件,则不会复制该文件,即目标目录不会完全替换为源目录。我可以看到新文件或修改已正确复制。
scp -r /user/local/img [email protected]:/user/local/img
答案1
scp 只是一个复制工具,所以如果您必须使用 scp,您唯一真正的选择是先清空目标目录树。
或者,您可能应该考虑使用 rsync,它将使用您现在的无密码设置在 ssh 上运行,并且具有许多优点(它可以复制删除,仅传输更改的数据,因此复制速度更快,并且可以在传输过程中压缩数据)。如果您将命令更改为此命令,您应该会得到想要的结果(尽管请先进行测试以确保它 100% 确定它能满足您的要求!):
rsync -avz --del /user/local/img [email protected]:/user/local/img
答案2
scp
工作原理与标准非常相似cp
- 它会复制您要求复制的内容。上面的命令表示它应该将本地文件夹复制/usr/local/img
到/usr/local/img
远程服务器上;如果远程文件夹已经存在,那么它将复制到/usr/local/img/img
。
答案3
scp 与 cp 非常相似,如果源文件已被删除,scp 不会删除目标文件。如果您想保持源目录和目标目录同步,那么 rsync 是最佳选择。
rsync -avz --delete /user/local/img [email protected]:/user/local/img
你也可以通过 ssh 使用 rsync
rsync -avz -e ssh --delete /user/local/img [email protected]:/user/local/img