2014-10-08 56 views
1

假设我在远程SFTP服务器上有一个文件/home/user/dir1/file.txt。我想复制这个文件,让我们说0123B,而我在sftp会话(我有服务器,它只允许sftp连接,但没有ssh连接!)连接到此服务器?在SFTP会话中,是否可以将一个远程文件复制到同一个远程SFTP服务器上的另一个位置?

有没有可能这样做?如果是,命令是什么?

例如,以下命令会重命名将文件从远程服务器上的一个目录移动到另一个目录。

sftp> rename dir1/file.txt dir2/file.txt 

我正在寻找一个命令,将文件从远程服务器上的一个目录复制到另一个目录(如果存在)。

解决的办法是从第一个位置下载文件并上传到第二个位置,但当有问题的文件很大并且一个正在使用慢速网络连接时,这不是一个选项!

回答

2

不确定你的意思是“命令”。你指的是一个SFTP协议请求?或者某些脚本/命令行SFTP客户端的命令(例如OpenSSH sftp)?

SFTP协议本身不允许复制远程文件。虽然有一个可选的扩展名为copy-file的协议可以达到目的。

引述copy-file extension specification

6.复制远程文件

byte SSH_FXP_EXTENDED 
uint32 request-id 
string "copy-file" 
string source-file 
string destination-file 
bool overwrite-destination 

这个请求副本从一个位置的文件到另一个服务器上。服务器使用SSH_FXP_STATUS进行响应。

虽然没有太多的SFTP服务器支持该扩展。我知道ProFTPD/mod_sftp和Bitvise WinSSHD可以。值得注意的是,OpenSSH没有(既不是服务器,也不是sftp客户端)。

+0

我的意思是一个sftp客户端的命令。奇怪的是,这样一个简单的事情不像OpenSSH那样受欢迎! – Curious 2014-10-08 16:06:28

+0

对不起。但它仍然回答你的问题! – 2014-10-09 07:29:44

相关问题