如何在Ruby NET:SFTP上输入远程目录?

如何在Ruby NET:SFTP上输入远程目录?,ruby,sftp,gem,Ruby,Sftp,Gem,如何输入命令-cd这样的目录,从而在没有路径前缀的情况下操作远程文件 这是我目前的代码 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!(

如何输入命令-cd这样的目录,从而在没有路径前缀的情况下操作远程文件

这是我目前的代码

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")
我找到了一个解决方案,那就是改用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

你说得对。SFTP实际上并不遵循FTP,允许您更改远程目录。如果内存正常,SFTP总是将您放在SSH根目录中,而您的根目录就被卡住了。发送远程CD似乎是移动的唯一方式。