我正在尝试从一个在线数据库下载一组文件,这需要使用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).它不是写一行描述它被保存为/to的位置,而是输出“无效的参数”,我不知道为什么。这两种设备都运行着相同版本的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按照评论中的要求。
发布于 2021-07-21 10:54:52
您正在试图在文件系统上创建文件,其中的名称包含非法字符( :)。当您在编辑中声明时,将在exFAT文件系统上创建该文件。维基百科页面 on exFAT明确声明:
文件名中允许的字符:除了
U+0000(NUL)通过U+001F(US)、/(斜杠)、\(反斜杠)、:(冒号)、*(星号)、?(问号)、"(引号)、<(小于)、>(大于)和|(管道)以外的所有Unicode字符
若要验证,请尝试使用另一个命令创建文件:
touch GRAVI.2017-06-29T02:59:55.346_raw2master.xml如果这是原因,可以使用另一个文件系统,或者使用另一个名称。
发布于 2022-09-04 11:12:15
如前所述,目标文件系统(exFAT)中存在一些字符限制。因此,您应该将--restrict-file-names=windows选项用于wget。它转换目标文件名和目录名中的问题字符。
https://unix.stackexchange.com/questions/659281
复制相似问题