在SFTP会话中,是否可以将一个远程文件复制到同一个远程SFTP服务器上的另一个位置?
问题描述:
假设我在远程SFTP服务器上有一个文件/home/user/dir1/file.txt
。我想复制这个文件,让我们说0123B,而我在sftp
会话(我有服务器,它只允许sftp
连接,但没有ssh
连接!)连接到此服务器?在SFTP会话中,是否可以将一个远程文件复制到同一个远程SFTP服务器上的另一个位置?
有没有可能这样做?如果是,命令是什么?
例如,以下命令会重命名将文件从远程服务器上的一个目录移动到另一个目录。
sftp> rename dir1/file.txt dir2/file.txt
我正在寻找一个命令,将文件从远程服务器上的一个目录复制到另一个目录(如果存在)。
解决的办法是从第一个位置下载文件并上传到第二个位置,但当有问题的文件很大并且一个正在使用慢速网络连接时,这不是一个选项!
答
不确定你的意思是“命令”。你指的是一个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
客户端)。
我的意思是一个sftp客户端的命令。奇怪的是,这样一个简单的事情不像OpenSSH那样受欢迎! – Curious 2014-10-08 16:06:28
对不起。但它仍然回答你的问题! – 2014-10-09 07:29:44