2012-10-31 46 views
1

這些天來,我與jsch-0.1.41一起工作,通過ChannelSftp在遠程linux服務器上運行資源。我發現沒有函數提供類似shell命令「cp」。現在我想將一個文件從一個目錄複製到另一個目錄,這兩個目錄都是linux服務器上的遠程目錄。是否有任何jsch ChannelSftp的功能像命令'cp'工作

我的介紹中有任何錯誤的地方,請指出。謝謝。

回答

0

SFTP協議不提供這樣的命令,因此JSch的ChannelSftp也不提供它。

你有兩種基本的選擇:

  • 使用的getput,即組合下載文件並重新上傳。您可以在沒有本地存儲的情況下執行此操作(只需將其中一個數據流連接到另一個數據流),但這仍需要通過網絡兩次移動數據(並進行兩次加密/解密),而這並不是真正必要的。只有在其他方式不起作用的情況下才可以使用它。

  • 不要使用SFTP,而是使用exec通道在服務器上執行復制命令。在Unix服務器上,該命令通常命名爲cp,可能在copy的Windows服務器上。 (如果服務器管理員以某種方式將您的帳戶限制爲僅限SFTP訪問,則這將不起作用。)

相關問題