lftp 用户凭据不能与 -e 或 -c 一起使用

lftp 用户凭据不能与 -e 或 -c 一起使用

我想用lftp一个命令将文件放入远程目录并退出。按照最高答案这个问题关于这个任务,我尝试了以下操作:

lftp -c "open -u user,pass ftpsite.com; put -O remote/dir/ /local/file.txt"

我收到以下错误:

put:登录失败:530 框:用户凭据无效。

我尝试了第二个答案

lftp -e "put -O remote/dir/ /local/file.txt; bye" -u user,pass ftpsite.com

并收到同样的错误。

一步一步做一切都很完美,即,

lftp ftpsite.com -u user,pass
put -O remote/dir/ /local/file.txt
bye

但我必须对许多文件执行此操作。我希望能够通过一个命令来完成此操作,将其作为脚本的一部分运行。有关如何修复此错误或从哪里查找/开始的任何提示?

答案1

lftp在大多数脚本中使用自动上传/下载,并且使用 HEREDOC 语法始终有效:

 lftp -u user,pass ftpsite.com << EOF
 cd remote/dir/ 
 put /local/file.txt
 bye
 EOF

请确保在以下范围内保护您的密码,'因为它可能包含由 shell 解释的保留字符(然后不会正确传递到lftp):lftp -u user,'password'

相关内容