我在SFTP位置创建了一个目录,我想将文件从一个SFTP目录移动到另一个目录,但不支持cp
命令。
我怎样才能做到这一点?
答案 0 :(得分:6)
核心SFTP协议不支持复制远程文件。
copy-file
extension to the protocol的草稿,但只有少数SFTP服务器(例如ProFTPD/mod_sftp和Bitvise SFTP服务器)支持,而且很少有SFTP客户端({{3}例如)。
最广泛的OpenSSH SFTP服务器绝对不支持它。也不是OpenSSH SFTP客户端(WinSCP),即没有cp
命令或任何其他功能相同的命令。
备选方案:
sftp
。copy-file
扩展名,请使用支持它的SFTP客户端。 cp
command上的通过本地临时副本复制选项)。 (我是WinSCP的作者)
答案 1 :(得分:1)
您可以在命令行模式(winscp /console
)中使用WinSCP克隆远程目录。让我们假设您在远程SFTP服务器上有以下结构:
theDestinationDirectory/
|-file1.txt
|-file2.txt
您可以使用以下脚本(在WinSCP控制台中)复制此远程目录:
open sftp://myUsername:myPassword@myftp.mydomain.com
mkdir theDestinationDirectory
call cp theSourceDirectory/* theDestinationDirectory/ -r
然后,您可以检查您的副本是否已正确完成(在WinSCP控制台中):
ls theDestinationDirectory
drwxr-sr-x 2 uid12345 gid12345 37 Jul 29 23:50:24 2016 .
drwxr-sr-x 6 uid12345 gid12345 75 Jul 29 23:50:11 2016 ..
-rw-r--r-- 1 uid12345 gid12345 29670 Jul 29 23:50:24 2016 file1.txt
-rw-r--r-- 1 uid12345 gid12345 12432 Jul 29 23:50:24 2016 file2.txt
请注意,正如Martin Prikryl所写,所有SFTP服务器可能都不支持这种情况......(至少我的支持)