使用wget时如何排除文件名列表

3

我需要使用wget从FTP服务器获取数据。我需要它从一个目录获取除了一些特定文件名以外的所有文件。例如:

fetchDir="ftp://user:pass@host/path/to/FileName*.csv.gz"
excludeList="FileName314.csv.gz, FileName271.csv.gz, FileName161.csv.gz"

wget ${fetchDir} --reject ${excludeList} -nc

这给我带来了一个错误,看起来像这样:
...
Rejecting ‘FileName000.csv.gz’.
Rejecting ‘FileName001.csv.gz’.
No matches on pattern ‘FileName*.csv.gz’.
--2015-12-08 14:27:28--  http://filename314.csv.gz/
Resolving filename314.csv.gz (filename314.csv.gz)... failed: Name or service not known.
wget: unable to resolve host address ‘filename314.csv.gz’

我应该如何修改代码,才能使其接受我的拒绝?

脚本似乎没问题,但上面的日志与脚本不符。 - steviethecat
日志非常长。虽然我已经仔细检查过,发现日志与运行时的相关错误一致。那么它为什么不匹配呢? - Roman
1
我无法精确地复现您的情况,但我的测试 (wget 'ftp://localhost/pub/NetStreamer/*.tgz' --reject 'NetStreamer-0*.tgz, NetStreamer.tgz' -nc) 是有效的。我在您的输出中发现奇怪之处是它试图连接到 http://filename314.csv.gz/。是否可能远程 ftp 站点上存在带有空格或星号的文件?这在这里应该不会有影响,但检查一下也无妨。 - steviethecat
@steviethecat。我也觉得很奇怪,但是没错。我正在使用一个感觉像练习场的网络进行工作(它很复杂),同时我还从一个带有(显然)FTP连接的VPN中获取数据。这会影响wget吗? - Roman
@steviethecat 该死,是逗号之间的空格!!Bash 对我来说太麻烦了:( 感谢所有的输入。 - Roman
1个回答

3

1
谢谢。该死的繁琐的Bash。但我认为我会保留引号,仅供可读性和我的理智。它从不干扰,对吧? - Roman
1
@Roman 正确。引用字符串不会有任何影响,而且更易读(这也是我保留它们的原因)。顺便说一下,我还编辑了我的答案,包括一个非常有用的单词分割链接。 - Anthony Geoghegan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接