我想将文件从 unix 服务器传输到 windows 2003 服务器,我在 windows 2003 上下载了 copssh,并且 openssh 已经安装在 unix 中...我执行以下命令:-
scp -r /file_in_unix/ user@windows_hostname:\c:\\
unix 屏幕上出现以下输出:-
100% |***************************************************************| 562 00:00
但当我去查看 C 盘中的文件时,我没有找到任何东西 :(
答案1
(从我对这个问题的回答中复制而来,并交叉发布到 SUhttps://superuser.com/questions/195596/transfer-file-from-unix-to-windows)
目标路径看起来不对 - 对于大多数 unix shell 来说,正斜杠是转义字符而不是路径标记,所以我猜测该文件已以奇怪的文件名放入 SSH 用户的主目录中。
IIRC copssh 基于 cygwin,因此您可能需要运行的是:
scp -r /file_in_unix/ user@windows_hostname:/cygdrive/c/
复制到 Windows 计算机上的 SSH 服务的替代方法是使用 GUI 客户端,例如温SCP在 Windows 机器上登录到 Unix 机器并以此方式提取文件 - 尽管如果您尝试自动化该过程,这并不合适。
如果您在 unix 计算机上有特权访问(即您是 root 用户,或者可以通过 sudo 或类似方式成为 root 用户)并安装了相关支持,那么您只需将文件复制到 Windows 共享即可。您不必说明您正在使用哪种 Unix。对于 Ubuntu 和类似系统,可以使用 检查是否存在支持并安装它(如果没有)sudo aptitude install smbfs
,您可以使用类似的方法挂载 Windwos 共享sudo mount -tcifs //11.22.33.44//sharename /mnt/tmp -ousername=WindowsUserName
(其中 11.22.33.44 是 Windows 计算机的 IP 地址,根据您的网络设置,您可能能够通过名称而不是地址来引用计算机)。完成后,您只需使用基本文件管理工具(cp
、、mv
...)与该 Windows 共享进行交互并umount /mnt/tmp
在完成后调用。您可能希望选择比 /mnt/tmp 更有意义的挂载点名称。当然,如果要自动/计划传输数据,您可以保持共享挂载。此方法假定 Unix 计算机可以通过它们之间可能存在的任何防火墙安排看到 Windows 计算机的文件共享。
答案2
scp -r /file_in_unix/ 表示您想要复制目录的内容。
也许您想改写 scp /tile_in_unix user@...。
如果您首先想要复制目录的内容:您是否检查过它是否为空?