2009-10-24 63 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

相关问题