2009-10-24 62 views
1

如何輸入類似命令cd的目錄,從而在不使用路徑前綴的情況下運行遠程文件?如何在Ruby NET上輸入遠程目錄:SFTP?

這是我目前的代碼。

Net::SFTP.start do |sftp| 
    sftp.rename!(REMOTE_PATH + "latest.zip", REMOTE_PATH + "latest.back.zip") 
    sftp.upload!("latest.zip", REMOTE_PATH + "latest.zip") 
end 

我想有:

sftp.cd REMOTE_PATH  
sftp.rename!("latest.zip", "latest.back.zip") 
sftp.upload!("latest.zip", "latest.zip") 

回答

0

我發現了一個解決方案,這是使用SSH連接來代替。。不起作用。 SFTP路徑似乎與SSH路徑無關。讓我知道你是否有其他選擇。

Net::SSH.start("localhost", "user", "password") do |ssh| 
    ssh.sftp.upload!("/local/file.tgz", "/remote/file.tgz") 
    ssh.exec! "cd /some/path && tar xf /remote/file.tgz && rm /remote/file.tgz" 
    end 
+1

你是對的。 SFTP實際上並不遵循FTP來允許您更改遠程目錄。如果內存爲我提供了正確的服務,那麼SFTP總是會讓你進入SSH根目錄,並將其卡在那裏。發送遠程CD似乎是唯一的移動方式。 – 2009-10-24 21:18:59

相關問題