linux - Shell - LFTP - 多个扩展

标签 linux bash shell lftp

我一直在努力寻找一种方法来使用 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/

相关文章:

shell - 使用 awk 和逻辑运算符在 shell 脚本中过滤多列

linux - 如何编写 Linux 内核模块?

linux - kubectl exec 行为异常,即使二进制文件在 pod 中,也未找到命令

linux - 如何使用 grep 从特定字符串位置获取文本?

git - 如何在 Git 中查找最新的非 merge 提交消息?

bash - zsh:如何设置自动完成,以便在光标位于文本之间时插入完成?

linux - 使用 bash 和 awk 比较两个文件并更新第二个文件并对第二个文件进行排序

bash - s 表达式的 jq 或 xsltproc 替代方案?

linux - 在 ubuntu 版本 18.04 LTS 上安装 mongodb 时遇到问题

c++ - 如何访问 Windows shell 上下文菜单项?