在机器 AI 上有文件夹
/home/a/
Run Code Online (Sandbox Code Playgroud)
在机器 BI 上有文件夹
/home/b/
Run Code Online (Sandbox Code Playgroud)
我希望使用 sftp 传输 /home/b 中 /home/a 的所有文件、目录和子目录 在机器 AI 上尝试了以下命令:
sftp fibon82@machineB.com
put /home/a/* /home/b/
Run Code Online (Sandbox Code Playgroud)
但它不起作用,我收到错误消息:“跳过非常规文件/home/a/a1”... [a1 是 a 的子目录]
如何修改 put 指令?
谢谢!:)
我用scp解决了:
scp -r /home/a/ fibon82@machineB.com:/home/b/
Run Code Online (Sandbox Code Playgroud)
Kar*_*los 23
尽管不严格等同于 sftp,但rsync是 scp 和 sftp 的一个非常强大的替代方案,尤其是在将副本从机器 A 更新到机器 B 时,因为它不会复制尚未更改的文件;它还能够从机器 B 中删除已从机器 A 中删除的文件(当然只有在它被告知的情况下)。
在您的情况下,语法将是
rsync -zrp /home/a/ user@remote.host.com:/home/b/
Run Code Online (Sandbox Code Playgroud)
该-r
选项用于递归复制文件,-z
在传输过程中启用压缩,并-p
在复制时保留文件权限(文件创建、编辑等),这是 scp 不执行 AFAIK 的事情。更多的选择是可能的;像往常一样,阅读man
页面。
dee*_*392 10
scp
(安全副本)实际上是 Linux 上通过安全隧道传输文件的工具。在您的情况下,您希望使用递归开关,例如:
scp -r /home/a/ user@remote.host.com:/home/b/
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
194000 次 |
最近记录: |