LFTP MGET和通配符错误地识别文件



我遇到了令人困惑的问题。我将LFTP作为夜间自动化文件传输过程的一部分,目的是收集网站上的所有.CSV文件。

通常,与通配符.csv相结合的mget命令能够找到并下载我期望的文件。但是,我遇到了一个有趣的情况,我有一个文件,该文件用ls标识为:

-rw-------   0 User Name -         6461 Oct  4 14:04 file name.csv

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

mget: Access failed: 550 /path/to/file/4 14:04 file name.csv: No such file or directory.

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

摘要

  • 该文件存在,如ls
  • 检查
  • 该文件应由mget命令
  • 捕获
  • 该文件未由mget命令捕获,因为沿着搜索和获取命令之间的某个地方,将其他字符添加到文件名的正面,导致它尝试获取不存在的文件

对我做错了什么的想法?

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

FTP服务器具有逃避用户名称的不同机制。在这种情况下,操作用户帐户具有两个部分名称,并具有空间分离。

FTP服务器(或不)逃脱用户名的方式可以导致LFTP中MGET的Regex Parser抛出的所有内容。将用户名减少到符合LFTP期望的值(似乎是一个单词,可以包括_-)最终解决了此问题。

,要使用具有LFTP的通配符,您需要指定文件的完整路径。尝试从EBI FTP服务器下载时,以下几个都无法正常工作

lftp -c 'open ftp.ebi.ac.uk; set xfer:clobber on;  lcd /export/data/blastdb/temp/ ; mget nr*.tar.gz

通过您的MGET呼叫添加路径允许通配符扩展并正如人们期望的那样工作。

lftp -c 'open ftp.ebi.ac.uk; set xfer:clobber on;  lcd /export/data/blastdb/temp/ ; mget /pub/blast/db/nr*.tar.gz

也许您不在正确的目录中,或者拼写了文件。您可以用命令来蛮力并下载整个树木:

lftp> mirror .

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

lftp> mget file name.csv

,尽管通配符应用 _ -space

正确扩展空间

相关内容

  • 没有找到相关文章

最新更新