在SFTP会话中,是否可以将一个远程文件复制到同一远程SFTP服务器上的另一个位置?

时间:2014-10-08 14:56:11

标签: copy sftp

假设我在远程SFTP服务器上有一个文件/home/user/dir1/file.txt。我希望将此文件复制为/home/user/dir2/file.txt,而我在sftp会话中(我的服务器只允许sftp个连接,但没有ssh个连接!)连接到这台服务器?

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

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

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

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

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

1 个答案:

答案 0 :(得分: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客户端)。