我有可通过 SFTP 访问的备份空间。我已在此远程存储上名为“mybackup”的目录中进行了备份。我现在想在远程存储上制作名为“mybackup-copy”的 mybackup 目录的副本。
有没有一种方法可以使用 SFTP 执行此操作,而不涉及下载整个目录,然后重新上传整个目录?
例如,如果我有完整的 SSH shell 访问权限,我可以这样做cp -ar mybackup mybackup-copy
- 这可以通过 sftp 协议来实现吗?
答案1
核心SFTP协议不支持复制远程文件。有草稿copy-data
/ copy-file
SFTP 协议的扩展。
但在最广泛的 OpenSSH SFTP 服务器中,copy-data
最新的支持9.0版本仅有的。它是sftp
客户有cp
命令(但您还需要兼容的服务器)。
其他支持扩展的服务器是FTPD协议mod_sftp
和 Bitvise SFTP 服务器。
所以使用壳 cp
命令通常是唯一的方法。
答案2
如果远程端支持scp
这应该可以工作:
scp -p host:/path/to/file/filename.ext host:/path/to/copy/of/file/
或者,既然您说您正在寻求复制目录:
scp -rp host:/path/to/directory host:/path/to/copy/
假设该目录/path/to/copy
存在于 上,后一个命令将在上host
产生一个新目录。/path/to/copy/directory
host