使用 wget 下载文件时参数无效

使用 wget 下载文件时参数无效

我正在尝试从在线数据库下载一组文件,这需要使用 wget。正在使用的 shell 脚本可以在我的一台计算机上运行,​​但我想让它在不同的设备上运行,这就是问题所在。无论出于何种原因,执行脚本时,它都会给出以下输出:

--2021-07-21 12:03:12--  https://archive.eso.org/downloadportalapi/calibrationxml/672f7dfa-65b6-4117-aaf5-9eb2fd4d8759/GRAVI.2017-06-29T02:59:55.346_raw2master.xml
Resolving archive.eso.org (archive.eso.org)... 134.171.46.246
Connecting to archive.eso.org (archive.eso.org)|134.171.46.246|:443... connected.
HTTP request sent, awaiting response... 200 
Length: 3484 (3.4K) [application/octet-stream]
GRAVI.2017-06-29T02:59:55.346_raw2master.xml: Invalid argument

Cannot write to 'GRAVI.2017-06-29T02:59:55.346_raw2master.xml’ (Success).

它没有编写一行描述其保存位置,而是输出“无效参数”,我不确定为什么。两个设备都运行相同版本的 wget,并且两个设备上使用的脚本是相同的。我也有足够的磁盘空间,所以这也不是问题。如果你想看shell脚本,可以使用这里

编辑:这是的输出

mount

/dev/sdb2 on /media/keegan/LaCie type exfat (rw,nosuid,nodev,relatime,uid=1001,gid=1001,fmask=0022,dmask=0022,iocharset=utf8,errors=remount-ro,uhelper=udisks2)

df -h

/dev/sdb2/      9.1T   14G  9.1T   1% /media/keegan/LaCie

按照评论中的要求。

答案1

您正尝试在名称包含非法字符(:)的文件系统上创建文件。正如您在编辑中所述,该文件将在exFAT文件系统上创建。这维基百科页面exFAT明确指出:

文件名中允许的字符:所有 Unicode 字符除了 U+0000( NUL) 到U+001F( US)、/(斜杠)、\(反斜杠)、:(冒号)*(星号)、?(问号)、"(引号)、<(小于)、>(大于)和|(竖线)

要进行验证,请尝试使用另一个命令创建该文件:

touch GRAVI.2017-06-29T02:59:55.346_raw2master.xml

如果这是原因,请使用其他文件系统或使用其他名称。

答案2

如前所述,目标文件系统 (exFAT) 存在一些字符限制。因此您应该使用 的--restrict-file-names=windows选项wget。这会转换目标文件名和目录名中的有问题的字符。

相关内容