我如何上传整个文件夹,其中包含其他文件夹,在Linux上使用sftp?

我已经试过put -r directory/* ,只上传文件而不是文件夹。 给我的错误, Couldn't canonicalise

任何帮助将不胜感激。

在这里你可以find如何使用scp复制目录的详细解释。 在你的情况下,它会是这样的:

 $ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar 

这会将目录“foo”从本地主机复制到远程主机的目录“bar”。 这里-r是recursion复制整个目录。

你也可以用类似的语法使用rcp 。 它们之间的唯一区别是scp使用安全shell,而rcp使用远程shell。

顺便说一句当你的sftp服务器无法访问命令中提到的文件/目录时,你提到的“无法规范化”的错误就会出现。

对于实际上希望直接回答这个问题的人(而不是被告知使用sftp以外的东西)…

 put -r local/path/to/directoryName 

上传的目录必须已经存在于服务器上的工作目录中,因此您可能需要先创build它。

 mkdir directoryName 
 sftp> mkdir source sftp> put -r source Uploading source/ to /home/myself/source Entering source/ source/file1 source/file2 

在这里输入图像说明

改用scp 。 它也使用SSH,可以很容易地处理recursion。