我正在尝试使用SFTP将整个目录上传到远程主机但是我收到了错误。(我知道SCP确实有效,但我真的想弄清楚SFTP的问题。)
我使用如下命令:
(echo "put -r LargeFile/"; echo quit)|sftp -vb - username@remotehost:TEST/
但我收到错误“无法规范化:没有这样的文件或目录”“无法规范路径”/ home / s1238262 / TEST / LargeFile“
我认为这是由访问权限引起的。因此,我以交互模式打开了与远程主机的SFTP连接,并尝试在TEST /中创建一个新目录“LargeFile”。我成功了。然后,我使用与上面相同的命令上传整个目录“LargeFile”。我也成功了。 LargeFile中的子目录是自动创建或复制的。
所以,我很困惑。似乎只能在非交互模式下创建LargeFile /目录。它或我的命令有什么问题?
答案 0 :(得分:18)
使用SFTP,您只能复制目录是否存在。所以
> mkdir LargeFile
> put -r path_to_large_file/LargeFile
与@Vidhuran链接中的建议相同,但这可以节省一些阅读。
答案 1 :(得分:5)
答案 2 :(得分:1)
对我来说,最简单的方法是将文件夹压缩到本地LargeFile.zip
,然后只需put LargeFile.zip
zip -r LargeFile.zip LargeFile
sftp www.mywebserver.com (or ip of the webserver)
put LargeFile.zip (it will be on your remote server local directory)
unzip Largefile.zip
答案 3 :(得分:1)
更好的方法是使用scp。
scp -r LargeFile/"; echo quit)|sftp -vb - username@remotehost:TEST/
答案 4 :(得分:1)
如果您使用的是Ubuntu 14.04,则sftp有一个错误。如果你有' /'添加到文件名后,您将获得无法规范化:失败错误。
例如:
SFTP> cd my_inbox / ##会给你一个错误
SFTP> cd my_inbox ##不会给你错误
注意正确请求中缺少正斜杠的方法。当您使用TAB键自动填充路径中的名称时,会出现正斜杠。