我一直在努力寻找一种方法来使用 mget
并仅使用某些文件扩展名。
我使用了以下命令(如果我离开 *.csv
就可以正常工作)
lftp -e "set xfer:clobber true;mget $SOURCE_DIR*.{csv,txt,xls,xlsx,zip,rar};exit"-u $SOURCE_USERNAME,$SOURCE_PASSWORD $SOURCE_SERVER ||导出 0
但运气不好,我收到消息 dir/*.{csv,txt,xls,xlsx,zip,rar} no files found
试图添加括号
lftp -e "set xfer:clobber true;mget $SOURCE_DIR(*.{csv,txt,xls,xlsx,zip,rar});exit"-u $SOURCE_USERNAME,$SOURCE_PASSWORD $SOURCE_SERVER ||导出 0
也没有运气
$SOURCE_DIR
末尾已经有斜杠 /
我尝试在本地测试 lftp,但我在 Vagrant box 上打开端口时遇到问题,因此出现问题
最佳答案
我设法连接到一个 FTP 而无需转发端口。
事实证明(我知道这看起来很明显)你必须为每个扩展指定带有通配符的完整路径
mget $SOURCE_DIR*.csv $SOURCE_DIR*.txt
以空格分隔
此外,如果一个(或多个)扩展名未找到,消息“*.txt 未找到文件”将出现标准错误,这导致我无法继续执行完整脚本
关于linux - Shell - LFTP - 多个扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36711596/