1

这些天,我正在使用jsch-0.1.41,通过ChannelSftp在远程linux服务器上操作资源。我发现没有提供类似于shell命令“cp”的功能。现在我想从一个目录到另一个,这两个目录都是linux服务器上的远程目录。

我的演示中有任何错误点,请指出。谢谢。

4

1 回答 1

0

SFTP 协议不提供这样的命令,因此 JSch 的 ChannelSftp 也不提供它。

你基本上有两种选择:

  • 使用 和 的组合getput即下载文件并再次上传。您可以在没有本地存储的情况下执行此操作(只需将一个流连接到另一个流),但这仍然需要通过网络移动数据两次(并加密/解密两次),而这并不是真正需要的。仅当其他方法不起作用时才使用此方法。

  • 不要使用 SFTP,而是使用exec通道在服务器上执行复制命令。在 unix 服务器上,此命令通常命名为cp,在 Windows 服务器上可能是copy。(如果服务器管理员以某种方式将您的帐户限制为仅限 SFTP 访问,这将不起作用。)

于 2012-11-04T20:48:21.917 回答