首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >带通配符的lftp mget标识文件

带通配符的lftp mget标识文件
EN

Stack Overflow用户
提问于 2017-10-04 14:27:22
回答 3查看 5.5K关注 0票数 2

我遇到了一个困扰我的问题。我使用LFTP作为夜间自动文件传输过程的一部分,目的是收集站点上的所有.csv文件。

通常,mget命令和通配符.csv可以找到和下载我希望它的文件。但是,我遇到了一个有趣的情况,其中我有一个文件,用ls标识为:

代码语言:javascript
运行
复制
-rw-------   0 User Name -         6461 Oct  4 14:04 file name.csv

但是,当我运行mget *.csv时,我会得到以下错误消息:

代码语言:javascript
运行
复制
mget: Access failed: 550 /path/to/file/4 14:04 file name.csv: No such file or directory.

它看起来像是在尝试mget时将文件元数据的%d %h:%m部分附加到文件名中。我认为这可能是由于文件名中的空格造成的,但在测试中,情况似乎并非如此。

摘要

  • 该文件存在,由ls检查
  • 该文件应由mget命令捕获
  • 该文件不会被mget命令捕获,因为在搜索命令和get命令之间的某个位置,会在文件名的前面添加其他字符,从而导致它尝试获取一个不存在的文件。

对我做错了什么有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-10-05 16:30:18

这个问题的答案最终是特定于服务器和版本的,但我将分享最终是什么问题,以防它导致其他人在未来没有大量的问题。

FTP服务器有不同的机制来转义用户名。在这种情况下,操作用户帐户有两个部分的名字,与空格分隔。

FTP服务器转义用户名的方式可能导致lftp中mget的regex解析器抛出列中的所有内容。将用户名简化为符合lftp预期的值(似乎是一个词,可以包括_-),最终解决了这个问题。

票数 0
EN

Stack Overflow用户

发布于 2019-04-17 19:59:35

为了在lftp中使用通配符,您需要指定文件的完整路径。尝试从EBI FTP服务器下载时,以下内容将无法工作

代码语言:javascript
运行
复制
lftp -c 'open ftp.ebi.ac.uk; set xfer:clobber on;  lcd /export/data/blastdb/temp/ ; mget nr*.tar.gz

使用mget调用添加路径允许通配符扩展,并如人们所期望的那样工作。

代码语言:javascript
运行
复制
lftp -c 'open ftp.ebi.ac.uk; set xfer:clobber on;  lcd /export/data/blastdb/temp/ ; mget /pub/blast/db/nr*.tar.gz
票数 0
EN

Stack Overflow用户

发布于 2022-04-12 13:44:30

也许你不在正确的目录中,或者你拼错了文件。您可以使用以下命令野蛮使用武力并下载整个树丛:

代码语言:javascript
运行
复制
lftp> mirror .

顺便说一下,您的错误可能是文件的名称中有一个空格。

代码语言:javascript
运行
复制
lftp> mget file\ name.csv

尽管如此,通配符应该使用\_space正确地扩展空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46567428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档