【问题标题】:In an SFTP session is it possible to copy one remote file to another location on same remote SFTP server?在 SFTP 会话中,是否可以将一个远程文件复制到同一远程 SFTP 服务器上的另一个位置?
【发布时间】:2014-12-03 07:11:33
【问题描述】:

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

有可能吗?如果是,命令是什么?

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

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

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

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

【问题讨论】:

    标签: copy sftp


    【解决方案1】:

    不确定您所说的“命令”是什么意思。您指的是 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 客户端)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-10
      • 1970-01-01
      • 2012-06-13
      • 1970-01-01
      • 1970-01-01
      • 2019-02-02
      相关资源
      最近更新 更多