【发布时间】:2012-04-22 12:26:47
【问题描述】:
我试过put -r directory/*,它只上传文件而不上传文件夹。给我错误,不能Couldn't canonicalise。
任何帮助将不胜感激。
【问题讨论】:
-
试试不带斜线和星号的“放置目录”。
标签: linux recursion upload console sftp
我试过put -r directory/*,它只上传文件而不上传文件夹。给我错误,不能Couldn't canonicalise。
任何帮助将不胜感激。
【问题讨论】:
标签: linux recursion upload console sftp
对于真正想要直接回答这个问题的人(而不是被告知使用 sftp 以外的其他东西)...
put -r local/path/to/directoryName
上传的目录必须已经存在于服务器的工作目录中,所以您可能需要先创建它。
mkdir directoryName
【讨论】:
Here你可以找到详细的解释如何使用scp复制一个目录。在你的情况下,它会是这样的:
$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar
这会将目录“foo”从本地主机复制到远程主机的目录“bar”。
这里-r 是-递归复制整个目录。
您也可以使用类似语法的rcp。它们之间的唯一区别是scp 使用安全shell 而rcp 使用远程shell。
顺便说一句当 sftp 服务器无法访问命令中提到的文件/目录时,会出现您提到的“无法规范化”错误。
更新:对于特别想使用put 的用户,请在此处参考 Ben Thielker 的回答。
【讨论】:
如果您在使用 sftp 时遇到问题,可以使用 ncftp 对于centos
yum install ncftp
递归复制整个目录
ncftpput -R -v -u username -P 21 ftp.server.dev /remote-path/ /localdirectory
【讨论】:
请改用scp。它也使用 SSH,并且可以轻松处理递归。
【讨论】:
scp 确实更胜一筹,但并不是所有的sftp 服务器都支持scp 连接,所以有时需要sftp 本身。