当前代码
#!/bin/bash
SFTP_SERVER="sftp.url.com:/csv/test/10"
SFTP_USER="user"
SFTP_PWD="pwd"
## not sure if this line is needed given I specify the local directory
# in the next block of code.
cd /mnt/c/Users/user/Documents/new_directory
lftp sftp://$SFTP_USER:$SFTP_PWD@$SFTP_SERVER
lftp -e mget *.csv mirror sftp.user.com:/csv/test/10 /mnt/c/Users/user/Documents/new_directory
目标
下载所有csv文件,并用远程服务器镜像我的本地目录文件夹,这样当代码再次运行时,它就不会下载第二个文件。
收到错误
open:*.csv:名称或服务未知
评论
根据我对lftp
手册页的理解,如果我使用-e
使用外部命令,我应该能够通过使用mget
而不是标准的get
来获取所有通配符文件。我手动运行了mget
,可以毫无问题地下载文件,但它似乎不支持脚本中的*.csv
。
感谢您提供的任何反馈,说明为什么我的代码不会下载文件,以及我可能从手册页中误解了什么。
它应该像:
lftp sftp://$SFTP_USER:$SFTP_PWD@$SFTP_SERVER -e "mget *.csv; bye"